From 7a6c5b0d1b0a19bb90a57a74bb8f1a2d0c60784a Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 11:13:49 +0900 Subject: [PATCH 01/29] Fix code style --- src/PhpSpreadsheet/Shared/Date.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/PhpSpreadsheet/Shared/Date.php b/src/PhpSpreadsheet/Shared/Date.php index f14655d8..8757e50c 100644 --- a/src/PhpSpreadsheet/Shared/Date.php +++ b/src/PhpSpreadsheet/Shared/Date.php @@ -114,9 +114,9 @@ class Date * Set the Default timezone to use for dates * * @param string|\DateTimeZone $timeZone The timezone to set for all Excel datetimestamp to PHP DateTime Object conversions - * @return boolean Success or failure * @throws \Exception * @return bool Success or failure + * @return bool Success or failure */ public static function setDefaultTimezone($timeZone) { @@ -147,9 +147,9 @@ class Date * Validate a timezone * * @param string|\DateTimeZone $timeZone The timezone to validate, either as a timezone string or object - * @return \DateTimeZone The timezone as a timezone object * @throws \Exception * @return \DateTimeZone The timezone as a timezone object + * @return \DateTimeZone The timezone as a timezone object */ protected static function validateTimeZone($timeZone) { @@ -164,7 +164,7 @@ class Date /** * Convert a MS serialized datetime value from Excel to a PHP Date/Time object * - * @param integer|float $excelTimestamp MS Excel serialized date/time value + * @param int|float $excelTimestamp MS Excel serialized date/time value * @param \DateTimeZone|string|null $timeZone The timezone to assume for the Excel timestamp, * if you don't want to treat it as a UTC value * Use the default (UST) unless you absolutely need a conversion @@ -203,7 +203,7 @@ class Date /** * Convert a MS serialized datetime value from Excel to a unix timestamp * - * @param integer|float $excelTimestamp MS Excel serialized date/time value + * @param int|float $excelTimestamp MS Excel serialized date/time value * @param \DateTimeZone|string|null $timeZone The timezone to assume for the Excel timestamp, * if you don't want to treat it as a UTC value * Use the default (UST) unless you absolutely need a conversion @@ -220,7 +220,7 @@ class Date * Convert a date from PHP to an MS Excel serialized date/time value * * @param mixed $dateValue Unix Timestamp or PHP DateTime object or a string - * @return float|boolean Excel date/time value + * @return float|bool Excel date/time value * or boolean FALSE on failure */ public static function PHPToExcel($dateValue = 0) @@ -265,6 +265,7 @@ class Date if (!is_numeric($dateValue)) { return false; } + return self::dateTimeToExcel(new \DateTime('@' . $dateValue)); } From ba705448464ec38f3527cd3ddc1ace20609b40b3 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 11:14:03 +0900 Subject: [PATCH 02/29] Fix crash when reading HTML files --- composer.json | 1 + src/PhpSpreadsheet/Helper/HTML.php | 17 +++++++++++------ src/PhpSpreadsheet/Reader/HTML.php | 26 ++++++++++++++++---------- 3 files changed, 28 insertions(+), 16 deletions(-) diff --git a/composer.json b/composer.json index ca41778b..41864bfd 100644 --- a/composer.json +++ b/composer.json @@ -37,6 +37,7 @@ "suggest": { "ext-zip": "*", "ext-gd": "*", + "ext-dom": "Option to read and write HTML files", "mpdf/mpdf": "Option for rendering PDF with PDF Writer", "dompdf/dompdf": "Option for rendering PDF with PDF Writer", "tecnick.com/tcpdf": "Option for rendering PDF with PDF Writer", diff --git a/src/PhpSpreadsheet/Helper/HTML.php b/src/PhpSpreadsheet/Helper/HTML.php index 0baf0491..0e3de1d4 100644 --- a/src/PhpSpreadsheet/Helper/HTML.php +++ b/src/PhpSpreadsheet/Helper/HTML.php @@ -2,6 +2,11 @@ namespace PhpSpreadsheet\Helper; +use DOMDocument; +use DOMElement; +use DOMNode; +use DOMText; + /** * Copyright (c) 2006 - 2016 PhpSpreadsheet * @@ -612,7 +617,7 @@ class HTML $this->initialise(); // Create a new DOM object - $dom = new \DOMDocument(); + $dom = new DOMDocument(); // Load the HTML file into the DOM object // Note the use of error suppression, because typically this will be an html fragment, so not fully valid markup $loaded = @$dom->loadHTML($html); @@ -786,7 +791,7 @@ class HTML $this->stringData .= "\n"; } - protected function parseTextNode(\DOMText $textNode) + protected function parseTextNode(DOMText $textNode) { $domText = preg_replace( '/\s+/u', @@ -807,7 +812,7 @@ class HTML } } - protected function parseElementNode(\DOMElement $element) + protected function parseElementNode(DOMElement $element) { $callbackTag = strtolower($element->nodeName); $this->stack[] = $callbackTag; @@ -820,12 +825,12 @@ class HTML $this->handleCallback($element, $callbackTag, $this->endTagCallbacks); } - protected function parseElements(\DOMNode $element) + protected function parseElements(DOMNode $element) { foreach ($element->childNodes as $child) { - if ($child instanceof \DOMText) { + if ($child instanceof DOMText) { $this->parseTextNode($child); - } elseif ($child instanceof \DOMElement) { + } elseif ($child instanceof DOMElement) { $this->parseElementNode($child); } } diff --git a/src/PhpSpreadsheet/Reader/HTML.php b/src/PhpSpreadsheet/Reader/HTML.php index 2f85b977..668af2b5 100644 --- a/src/PhpSpreadsheet/Reader/HTML.php +++ b/src/PhpSpreadsheet/Reader/HTML.php @@ -2,6 +2,12 @@ namespace PhpSpreadsheet\Reader; +use DOMDocument; +use DOMElement; +use DOMNode; +use DOMText; +use PhpSpreadsheet\Spreadsheet; + /** * Copyright (c) 2006 - 2016 PhpSpreadsheet * @@ -131,16 +137,16 @@ class HTML extends BaseReader implements IReader } /** - * Loads PhpSpreadsheet from file + * Loads Spreadsheet from file * * @param string $pFilename * @throws Exception - * @return PhpSpreadsheet + * @return Spreadsheet */ public function load($pFilename) { - // Create new PhpSpreadsheet - $spreadsheet = new PhpSpreadsheet(); + // Create new Spreadsheet + $spreadsheet = new Spreadsheet(); // Load into this instance return $this->loadIntoExisting($pFilename, $spreadsheet); @@ -168,7 +174,7 @@ class HTML extends BaseReader implements IReader return $this->inputEncoding; } - // Data Array used for testing only, should write to PhpSpreadsheet object on completion of tests + // Data Array used for testing only, should write to Spreadsheet object on completion of tests protected $dataArray = []; protected $tableLevel = 0; protected $nestedColumn = ['A']; @@ -458,11 +464,11 @@ class HTML extends BaseReader implements IReader * Loads PhpSpreadsheet from file into PhpSpreadsheet instance * * @param string $pFilename - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet + * @param Spreadsheet $spreadsheet * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return Spreadsheet */ - public function loadIntoExisting($pFilename, \PhpSpreadsheet\Spreadsheet $spreadsheet) + public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet) { // Open file to validate $this->openFile($pFilename); @@ -473,14 +479,14 @@ class HTML extends BaseReader implements IReader // Close after validating fclose($this->fileHandle); - // Create new PhpSpreadsheet + // Create new sheet while ($spreadsheet->getSheetCount() <= $this->sheetIndex) { $spreadsheet->createSheet(); } $spreadsheet->setActiveSheetIndex($this->sheetIndex); // Create a new DOM object - $dom = new domDocument(); + $dom = new DOMDocument(); // Reload the HTML file into the DOM object $loaded = $dom->loadHTML(mb_convert_encoding($this->securityScanFile($pFilename), 'HTML-ENTITIES', 'UTF-8')); if ($loaded === false) { From 942ad72d2a2962df56bad820651c060c3d31bfc5 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 11:43:27 +0900 Subject: [PATCH 03/29] Complete a few more namespace renaming --- src/PhpSpreadsheet/Calculation/Categories.php | 8 +++---- src/PhpSpreadsheet/Reader/Excel2003XML.php | 14 +++++++----- src/PhpSpreadsheet/Reader/Gnumeric.php | 18 ++++++++------- src/PhpSpreadsheet/Writer/Excel2007.php | 16 ++++++++------ .../Writer/Excel2007/Worksheet.php | 2 +- src/PhpSpreadsheet/Writer/HTML.php | 2 +- src/PhpSpreadsheet/Writer/OpenDocument.php | 12 +++++----- .../Writer/OpenDocument/Content.php | 4 ++-- .../Writer/OpenDocument/Meta.php | 2 +- .../Writer/OpenDocument/MetaInf.php | 2 +- .../Writer/OpenDocument/Settings.php | 2 +- .../Writer/OpenDocument/Styles.php | 2 +- src/PhpSpreadsheet/Writer/PDF/DomPDF.php | 12 +++++----- src/PhpSpreadsheet/Writer/PDF/MPDF.php | 22 +++++++++---------- src/PhpSpreadsheet/Writer/PDF/TcPDF.php | 22 +++++++++---------- 15 files changed, 74 insertions(+), 66 deletions(-) diff --git a/src/PhpSpreadsheet/Calculation/Categories.php b/src/PhpSpreadsheet/Calculation/Categories.php index 4ecc609c..8f3ba238 100644 --- a/src/PhpSpreadsheet/Calculation/Categories.php +++ b/src/PhpSpreadsheet/Calculation/Categories.php @@ -125,21 +125,21 @@ class Categories } /** - * Get PhpSpreadsheet function name + * Get Spreadsheet function name * * @return string */ - public function getPhpSpreadsheetName() + public function getSpreadsheetName() { return $this->spreadsheetName; } /** - * Set PhpSpreadsheet function name + * Set Spreadsheet function name * * @param string $value */ - public function setPhpSpreadsheetName($value) + public function setSpreadsheetName($value) { $this->spreadsheetName = $value; } diff --git a/src/PhpSpreadsheet/Reader/Excel2003XML.php b/src/PhpSpreadsheet/Reader/Excel2003XML.php index b313cf5e..761b751d 100644 --- a/src/PhpSpreadsheet/Reader/Excel2003XML.php +++ b/src/PhpSpreadsheet/Reader/Excel2003XML.php @@ -2,6 +2,8 @@ namespace PhpSpreadsheet\Reader; +use PhpSpreadsheet\Spreadsheet; + /** * Copyright (c) 2006 - 2016 PhpSpreadsheet * @@ -100,7 +102,7 @@ class Excel2003XML extends BaseReader implements IReader } /** - * Reads names of the worksheets from a file, without parsing the whole file to a PhpSpreadsheet object + * Reads names of the worksheets from a file, without parsing the whole file to a Spreadsheet object * * @param string $pFilename * @throws Exception @@ -208,7 +210,7 @@ class Excel2003XML extends BaseReader implements IReader } /** - * Loads PhpSpreadsheet from file + * Loads Spreadsheet from file * * @param string $pFilename * @throws Exception @@ -216,8 +218,8 @@ class Excel2003XML extends BaseReader implements IReader */ public function load($pFilename) { - // Create new PhpSpreadsheet - $spreadsheet = new PhpSpreadsheet(); + // Create new Spreadsheet + $spreadsheet = new Spreadsheet(); $spreadsheet->removeSheetByIndex(0); // Load into this instance @@ -273,7 +275,7 @@ class Excel2003XML extends BaseReader implements IReader } /** - * Loads PhpSpreadsheet from file into PhpSpreadsheet instance + * Loads from file into Spreadsheet instance * * @param string $pFilename * @param \PhpSpreadsheet\Spreadsheet $spreadsheet @@ -371,7 +373,7 @@ class Excel2003XML extends BaseReader implements IReader if (isset($xml->CustomDocumentProperties)) { foreach ($xml->CustomDocumentProperties[0] as $propertyName => $propertyValue) { $propertyAttributes = $propertyValue->attributes($namespaces['dt']); - $propertyName = preg_replace_callback('/_x([0-9a-z]{4})_/', '\\PhpSpreadsheet\\Reader\\Excel2003XML::hex2str', $propertyName); + $propertyName = preg_replace_callback('/_x([0-9a-z]{4})_/', ['self', 'hex2str'], $propertyName); $propertyType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_UNKNOWN; switch ((string) $propertyAttributes) { case 'string': diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index 08591480..246b655f 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -2,6 +2,8 @@ namespace PhpSpreadsheet\Reader; +use PhpSpreadsheet\Spreadsheet; + /** * Copyright (c) 2006 - 2016 PhpSpreadsheet * @@ -83,7 +85,7 @@ class Gnumeric extends BaseReader implements IReader } /** - * Reads names of the worksheets from a file, without parsing the whole file to a PhpSpreadsheet object + * Reads names of the worksheets from a file, without parsing the whole file to a Spreadsheet object * * @param string $pFilename * @throws Exception @@ -178,30 +180,30 @@ class Gnumeric extends BaseReader implements IReader } /** - * Loads PhpSpreadsheet from file + * Loads Spreadsheet from file * * @param string $pFilename * @throws Exception - * @return PhpSpreadsheet + * @return Spreadsheet */ public function load($pFilename) { - // Create new PhpSpreadsheet - $spreadsheet = new PhpSpreadsheet(); + // Create new Spreadsheet + $spreadsheet = new Spreadsheet(); // Load into this instance return $this->loadIntoExisting($pFilename, $spreadsheet); } /** - * Loads PhpSpreadsheet from file into PhpSpreadsheet instance + * Loads from file into Spreadsheet instance * * @param string $pFilename - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet + * @param Spreadsheet $spreadsheet * @throws Exception * @return PhpSpreadsheet */ - public function loadIntoExisting($pFilename, \PhpSpreadsheet\Spreadsheet $spreadsheet) + public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet) { // Check if file exists if (!file_exists($pFilename)) { diff --git a/src/PhpSpreadsheet/Writer/Excel2007.php b/src/PhpSpreadsheet/Writer/Excel2007.php index 6e178bbd..be64d163 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007.php +++ b/src/PhpSpreadsheet/Writer/Excel2007.php @@ -2,6 +2,8 @@ namespace PhpSpreadsheet\Writer; +use PhpSpreadsheet\Spreadsheet; + /** * PhpSpreadsheet\Writer\Excel2007 * @@ -113,7 +115,7 @@ class Excel2007 extends BaseWriter implements IWriter public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet = null) { // Assign PhpSpreadsheet - $this->setPhpSpreadsheet($spreadsheet); + $this->setSpreadsheet($spreadsheet); $writerPartsArray = [ 'stringtable' => '\\PhpSpreadsheet\\Writer\\Excel2007\\StringTable', @@ -397,28 +399,28 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get PhpSpreadsheet object + * Get Spreadsheet object * * @throws \PhpSpreadsheet\Writer\Exception - * @return PhpSpreadsheet + * @return Spreadsheet */ - public function getPhpSpreadsheet() + public function getSpreadsheet() { if ($this->spreadSheet !== null) { return $this->spreadSheet; } else { - throw new \PhpSpreadsheet\Writer\Exception('No PhpSpreadsheet object assigned.'); + throw new \PhpSpreadsheet\Writer\Exception('No Spreadsheet object assigned.'); } } /** - * Set PhpSpreadsheet object + * Set Spreadsheet object * * @param \PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object * @throws Exception * @return Excel2007 */ - public function setPhpSpreadsheet(\PhpSpreadsheet\Spreadsheet $spreadsheet = null) + public function setSpreadsheet(Spreadsheet $spreadsheet = null) { $this->spreadSheet = $spreadsheet; diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php index 62f276d9..ea886c21 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php @@ -211,7 +211,7 @@ class Worksheet extends WriterPart // Sheet selected? $sheetSelected = false; - if ($this->getParentWriter()->getPhpSpreadsheet()->getIndex($pSheet) == $this->getParentWriter()->getPhpSpreadsheet()->getActiveSheetIndex()) { + if ($this->getParentWriter()->getSpreadsheet()->getIndex($pSheet) == $this->getParentWriter()->getSpreadsheet()->getActiveSheetIndex()) { $sheetSelected = true; } diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index 0a027c71..5325d58d 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -1,6 +1,6 @@ setPhpSpreadsheet($spreadsheet); + $this->setSpreadsheet($spreadsheet); $writerPartsArray = [ 'content' => \PhpSpreadsheet\Writer\OpenDocument\Content::class, @@ -160,12 +162,12 @@ class OpenDocument extends BaseWriter implements IWriter } /** - * Get PhpSpreadsheet object + * Get Spreadsheet object * * @throws \PhpSpreadsheet\Writer\Exception - * @return PhpSpreadsheet + * @return Spreadsheet */ - public function getPhpSpreadsheet() + public function getSpreadsheet() { if ($this->spreadSheet !== null) { return $this->spreadSheet; @@ -181,7 +183,7 @@ class OpenDocument extends BaseWriter implements IWriter * @throws \PhpSpreadsheet\Writer\Exception * @return Excel2007 */ - public function setPhpSpreadsheet(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function setSpreadsheet(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { $this->spreadSheet = $spreadsheet; diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Content.php b/src/PhpSpreadsheet/Writer/OpenDocument/Content.php index 8ab14baf..929af08d 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Content.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Content.php @@ -47,7 +47,7 @@ class Content extends WriterPart public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { - $spreadsheet = $this->getParentWriter()->getPhpSpreadsheet(); /* @var $spreadsheet PhpSpreadsheet */ + $spreadsheet = $this->getParentWriter()->getSpreadsheet(); /* @var $spreadsheet PhpSpreadsheet */ } $objWriter = null; @@ -119,7 +119,7 @@ class Content extends WriterPart */ private function writeSheets(\PhpSpreadsheet\Shared\XMLWriter $objWriter) { - $spreadsheet = $this->getParentWriter()->getPhpSpreadsheet(); /* @var $spreadsheet PhpSpreadsheet */ + $spreadsheet = $this->getParentWriter()->getSpreadsheet(); /* @var $spreadsheet PhpSpreadsheet */ $sheet_count = $spreadsheet->getSheetCount(); for ($i = 0; $i < $sheet_count; ++$i) { diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php b/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php index bd5082c7..44d7187a 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php @@ -36,7 +36,7 @@ class Meta extends WriterPart public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { - $spreadsheet = $this->getParentWriter()->getPhpSpreadsheet(); + $spreadsheet = $this->getParentWriter()->getSpreadsheet(); } $objWriter = null; diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php b/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php index 94374cad..3054d13d 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php @@ -36,7 +36,7 @@ class MetaInf extends WriterPart public function writeManifest(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { - $spreadsheet = $this->getParentWriter()->getPhpSpreadsheet(); + $spreadsheet = $this->getParentWriter()->getSpreadsheet(); } $objWriter = null; diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php b/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php index 10ae515c..01e74f96 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php @@ -36,7 +36,7 @@ class Settings extends WriterPart public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { - $spreadsheet = $this->getParentWriter()->getPhpSpreadsheet(); + $spreadsheet = $this->getParentWriter()->getSpreadsheet(); } $objWriter = null; diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php b/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php index 6c5bcdf1..d18746a8 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php @@ -36,7 +36,7 @@ class Styles extends WriterPart public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { - $spreadsheet = $this->getParentWriter()->getPhpSpreadsheet(); + $spreadsheet = $this->getParentWriter()->getSpreadsheet(); } $objWriter = null; diff --git a/src/PhpSpreadsheet/Writer/PDF/DomPDF.php b/src/PhpSpreadsheet/Writer/PDF/DomPDF.php index f525c4f3..302e97f4 100644 --- a/src/PhpSpreadsheet/Writer/PDF/DomPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/DomPDF.php @@ -59,15 +59,15 @@ class DomPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { - $orientation = ($this->phpSpreadsheet->getSheet(0)->getPageSetup()->getOrientation() + $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpSpreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); - $printMargins = $this->phpSpreadsheet->getSheet(0)->getPageMargins(); + $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); + $printMargins = $this->spreadsheet->getSheet(0)->getPageMargins(); } else { - $orientation = ($this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() + $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); - $printMargins = $this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); + $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); + $printMargins = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); } $orientation = ($orientation == 'L') ? 'landscape' : 'portrait'; diff --git a/src/PhpSpreadsheet/Writer/PDF/MPDF.php b/src/PhpSpreadsheet/Writer/PDF/MPDF.php index fa377a95..a3c503c6 100644 --- a/src/PhpSpreadsheet/Writer/PDF/MPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/MPDF.php @@ -59,15 +59,15 @@ class MPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { - $orientation = ($this->phpSpreadsheet->getSheet(0)->getPageSetup()->getOrientation() + $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpSpreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); - $printMargins = $this->phpSpreadsheet->getSheet(0)->getPageMargins(); + $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); + $printMargins = $this->spreadsheet->getSheet(0)->getPageMargins(); } else { - $orientation = ($this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() + $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); - $printMargins = $this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); + $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); + $printMargins = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); } $this->setOrientation($orientation); @@ -96,11 +96,11 @@ class MPDF extends Core implements \PhpSpreadsheet\Writer\IWriter $pdf->AddPage($orientation); // Document info - $pdf->SetTitle($this->phpSpreadsheet->getProperties()->getTitle()); - $pdf->SetAuthor($this->phpSpreadsheet->getProperties()->getCreator()); - $pdf->SetSubject($this->phpSpreadsheet->getProperties()->getSubject()); - $pdf->SetKeywords($this->phpSpreadsheet->getProperties()->getKeywords()); - $pdf->SetCreator($this->phpSpreadsheet->getProperties()->getCreator()); + $pdf->SetTitle($this->spreadsheet->getProperties()->getTitle()); + $pdf->SetAuthor($this->spreadsheet->getProperties()->getCreator()); + $pdf->SetSubject($this->spreadsheet->getProperties()->getSubject()); + $pdf->SetKeywords($this->spreadsheet->getProperties()->getKeywords()); + $pdf->SetCreator($this->spreadsheet->getProperties()->getCreator()); $pdf->WriteHTML( $this->generateHTMLHeader(false) . diff --git a/src/PhpSpreadsheet/Writer/PDF/TcPDF.php b/src/PhpSpreadsheet/Writer/PDF/TcPDF.php index b8a3855f..d88d9077 100644 --- a/src/PhpSpreadsheet/Writer/PDF/TcPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/TcPDF.php @@ -60,15 +60,15 @@ class TcPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { - $orientation = ($this->phpSpreadsheet->getSheet(0)->getPageSetup()->getOrientation() + $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpSpreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); - $printMargins = $this->phpSpreadsheet->getSheet(0)->getPageMargins(); + $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); + $printMargins = $this->spreadsheet->getSheet(0)->getPageMargins(); } else { - $orientation = ($this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() + $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; - $printPaperSize = $this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); - $printMargins = $this->phpSpreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); + $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); + $printMargins = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); } // Override Page Orientation @@ -107,11 +107,11 @@ class TcPDF extends Core implements \PhpSpreadsheet\Writer\IWriter ); // Document info - $pdf->SetTitle($this->phpSpreadsheet->getProperties()->getTitle()); - $pdf->SetAuthor($this->phpSpreadsheet->getProperties()->getCreator()); - $pdf->SetSubject($this->phpSpreadsheet->getProperties()->getSubject()); - $pdf->SetKeywords($this->phpSpreadsheet->getProperties()->getKeywords()); - $pdf->SetCreator($this->phpSpreadsheet->getProperties()->getCreator()); + $pdf->SetTitle($this->spreadsheet->getProperties()->getTitle()); + $pdf->SetAuthor($this->spreadsheet->getProperties()->getCreator()); + $pdf->SetSubject($this->spreadsheet->getProperties()->getSubject()); + $pdf->SetKeywords($this->spreadsheet->getProperties()->getKeywords()); + $pdf->SetCreator($this->spreadsheet->getProperties()->getCreator()); // Write to file fwrite($fileHandle, $pdf->output($pFilename, 'S')); From b0621f514f0b4cadabc18b9f48afd8e54761dcf1 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 11:55:49 +0900 Subject: [PATCH 04/29] Avoid duplicated info in README --- README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 32b22596..65a64572 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PhpSpreadsheet - OpenXML - Read, Write and Create spreadsheet documents in PHP - Spreadsheet engine +# PhpSpreadsheet Master: [![Build Status](https://travis-ci.org/PHPOffice/PhpSpreadsheet.svg?branch=master)](https://travis-ci.org/PHPOffice/PhpSpreadsheet) @@ -14,7 +14,7 @@ Develop: [![Code Quality](https://scrutinizer-ci.com/g/PHPOffice/PhpSpreadsheet/badges/quality-score.png?b=develop)](https://scrutinizer-ci.com/g/PHPOffice/PhpSpreadsheet/?branch=develop) [![Code Coverage](https://scrutinizer-ci.com/g/PHPOffice/PhpSpreadsheet/badges/coverage.png?b=develop)](https://scrutinizer-ci.com/g/PHPOffice/PhpSpreadsheet/?branch=develop) -PhpSpreadsheet is a library written in pure PHP and providing a set of classes that allow you to write to and read from different spreadsheet file formats, like Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML, ... This project is built around Microsoft's OpenXML standard and PHP. +PhpSpreadsheet is a library written in pure PHP and providing a set of classes that allow you to read from and to write to different spreadsheet file formats, like Excel and LibreOffice Calc. ## File Formats supported @@ -32,12 +32,14 @@ PhpSpreadsheet is a library written in pure PHP and providing a set of classes t |PDF (using either the tcPDF, DomPDF or mPDF libraries, which need to be installed separately)| | ✓ | ## Requirements + * PHP version 5.5.0 or higher * PHP extension php_zip enabled (required if you need PhpSpreadsheet to handle .xlsx .ods or .gnumeric files) * PHP extension php_xml enabled * PHP extension php_gd2 enabled (optional, but required for exact column width autocalculation) ## PHP Version Support + * Support for PHP versions will only be maintained for a period of six months beyond the end-of-life of that PHP version ## Want to contribute? @@ -52,4 +54,5 @@ If you would like to contribute, here are some notes and guidlines: ## License + PhpSpreadsheet is licensed under [LGPL (GNU LESSER GENERAL PUBLIC LICENSE)](https://github.com/PHPOffice/PhpSpreadsheet/blob/master/license.md) From 027792ed09f2bf9449abaf988fc2e93f7ec76e5e Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 13:39:26 +0900 Subject: [PATCH 05/29] Fix wrong class names that were incorrectly migrated --- src/PhpSpreadsheet/Writer/HTML.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index 5325d58d..9e62f580 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -8,8 +8,6 @@ use Spreadsheet\Shared\StringHelper; use Spreadsheet\Spreadsheet; /** - * Spreadsheet_Writer_HTML - * * Copyright (c) 2006 - 2015 Spreadsheet * * This library is free software; you can redistribute it and/or @@ -132,7 +130,7 @@ class HTML extends BaseWriter implements IWriter private $generateSheetNavigationBlock = true; /** - * Create a new Spreadsheet_Writer_HTML + * Create a new HTML * * @param Spreadsheet $spreadsheet */ @@ -560,7 +558,7 @@ class HTML extends BaseWriter implements IWriter $colMax = 'A'; if ($this->includeCharts) { foreach ($pSheet->getChartCollection() as $chart) { - if ($chart instanceof Spreadsheet_Chart) { + if ($chart instanceof \PhpSpreadsheet\Chart) { $chartCoordinates = $chart->getTopLeftPosition(); $chartTL = \Spreadsheet\Cell::coordinateFromString($chartCoordinates['cell']); $chartCol = \Spreadsheet\Cell::columnIndexFromString($chartTL[0]); @@ -701,7 +699,7 @@ class HTML extends BaseWriter implements IWriter // Write charts foreach ($pSheet->getChartCollection() as $chart) { - if ($chart instanceof Spreadsheet_Chart) { + if ($chart instanceof \PhpSpreadsheet\Chart) { $chartCoordinates = $chart->getTopLeftPosition(); if ($chartCoordinates['cell'] == $coordinates) { $chartFileName = \Spreadsheet\Shared\File::sysGetTempDir() . '/' . uniqid() . '.png'; @@ -933,7 +931,7 @@ class HTML extends BaseWriter implements IWriter /** * Create CSS style * - * @param \Spreadsheet\Style $pStyle Spreadsheet_Style + * @param \Spreadsheet\Style $pStyle * @return array */ private function createCSSStyle(\Spreadsheet\Style $pStyle) @@ -1329,7 +1327,7 @@ class HTML extends BaseWriter implements IWriter if (!$this->useInlineCss) { $html .= ' class="' . $cssClass . '"'; } else { - //** Necessary redundant code for the sake of Spreadsheet_Writer_PDF ** + //** Necessary redundant code for the sake of PhpSpreadsheet\Writer\PDF ** // We must explicitly write the width of the element because TCPDF // does not recognize e.g. $width = 0; @@ -1420,7 +1418,7 @@ class HTML extends BaseWriter implements IWriter * Set images root * * @param string $pValue - * @return Spreadsheet_Writer_HTML + * @return HTML */ public function setImagesRoot($pValue = '.') { @@ -1443,7 +1441,7 @@ class HTML extends BaseWriter implements IWriter * Set embed images * * @param bool $pValue - * @return Spreadsheet_Writer_HTML + * @return HTML */ public function setEmbedImages($pValue = '.') { @@ -1466,7 +1464,7 @@ class HTML extends BaseWriter implements IWriter * Set use inline CSS? * * @param bool $pValue - * @return Spreadsheet_Writer_HTML + * @return HTML */ public function setUseInlineCss($pValue = false) { From b9ce2b901e00a835acb7b9e9eb59b317dca75e35 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 13:47:27 +0900 Subject: [PATCH 06/29] Format date unit tests is now working --- tests/PhpSpreadsheet/Style/NumberFormatDateTest.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/PhpSpreadsheet/Style/NumberFormatDateTest.php b/tests/PhpSpreadsheet/Style/NumberFormatDateTest.php index a6263997..71b87267 100644 --- a/tests/PhpSpreadsheet/Style/NumberFormatDateTest.php +++ b/tests/PhpSpreadsheet/Style/NumberFormatDateTest.php @@ -18,8 +18,6 @@ class NumberFormatDateTest extends \PHPUnit_Framework_TestCase */ public function testFormatValueWithMask() { - $this->markTestIncomplete('TODO: This test should be fixed'); - $args = func_get_args(); $expectedResult = array_pop($args); $result = call_user_func_array([NumberFormat::class, 'toFormattedString'], $args); From 29bdbd4e0bcc27fdb4d0db56a791a2e766e03691 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 13:53:15 +0900 Subject: [PATCH 07/29] Respect PSR-0 with matching folder name and namespace `PhpSpreadsheetTests` --- composer.json | 2 +- phpunit.xml.dist | 2 +- .../Calculation/DateTimeTest.php | 2 +- .../Calculation/EngineeringTest.php | 6 +++--- .../Calculation/FinancialTest.php | 2 +- .../Calculation/FunctionsTest.php | 2 +- .../Calculation/LogicalTest.php | 2 +- .../Calculation/LookupRefTest.php | 2 +- .../Calculation/MathTrigTest.php | 2 +- .../Calculation/TextDataTest.php | 2 +- .../CalculationTest.php | 2 +- .../Cell/AdvancedValueBinderTest.php | 2 +- .../Cell/DataTypeTest.php | 2 +- .../Cell/DefaultValueBinderTest.php | 2 +- .../Cell/HyperlinkTest.php | 2 +- tests/{PhpSpreadsheet => PhpSpreadsheetTests}/CellTest.php | 2 +- .../Chart/DataSeriesValuesTest.php | 2 +- .../Chart/LayoutTest.php | 2 +- .../Chart/LegendTest.php | 2 +- .../Custom/Complex.php | 2 +- .../Custom/ComplexAssert.php | 2 +- .../Reader/XEEValidatorTest.php | 2 +- .../ReferenceHelperTest.php | 2 +- .../SettingsTest.php | 2 +- .../Shared/CodePageTest.php | 2 +- .../Shared/DateTest.php | 2 +- .../Shared/FileTest.php | 2 +- .../Shared/FontTest.php | 2 +- .../Shared/PasswordHasherTest.php | 2 +- .../Shared/StringTest.php | 2 +- .../Shared/TimeZoneTest.php | 2 +- .../Style/ColorTest.php | 2 +- .../Style/NumberFormatDateTest.php | 2 +- .../Style/NumberFormatTest.php | 2 +- .../Worksheet/AutoFilter/Column/RuleTest.php | 2 +- .../Worksheet/AutoFilter/ColumnTest.php | 2 +- .../Worksheet/AutoFilterTest.php | 2 +- .../Worksheet/CellCollectionTest.php | 2 +- .../Worksheet/ColumnCellIteratorTest.php | 2 +- .../Worksheet/ColumnIteratorTest.php | 2 +- .../Worksheet/RowCellIteratorTest.php | 2 +- .../Worksheet/RowIteratorTest.php | 2 +- .../Worksheet/WorksheetColumnTest.php | 2 +- .../Worksheet/WorksheetRowTest.php | 2 +- 44 files changed, 46 insertions(+), 46 deletions(-) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/DateTimeTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/EngineeringTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/FinancialTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/FunctionsTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/LogicalTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/LookupRefTest.php (96%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/MathTrigTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Calculation/TextDataTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/CalculationTest.php (97%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Cell/AdvancedValueBinderTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Cell/DataTypeTest.php (94%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Cell/DefaultValueBinderTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Cell/HyperlinkTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/CellTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Chart/DataSeriesValuesTest.php (97%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Chart/LayoutTest.php (94%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Chart/LegendTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Custom/Complex.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Custom/ComplexAssert.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Reader/XEEValidatorTest.php (97%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/ReferenceHelperTest.php (97%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/SettingsTest.php (95%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Shared/CodePageTest.php (97%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Shared/DateTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Shared/FileTest.php (95%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Shared/FontTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Shared/PasswordHasherTest.php (93%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Shared/StringTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Shared/TimeZoneTest.php (95%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Style/ColorTest.php (97%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Style/NumberFormatDateTest.php (95%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Style/NumberFormatTest.php (95%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/AutoFilter/Column/RuleTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/AutoFilter/ColumnTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/AutoFilterTest.php (99%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/CellCollectionTest.php (94%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/ColumnCellIteratorTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/ColumnIteratorTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/RowCellIteratorTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/RowIteratorTest.php (98%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/WorksheetColumnTest.php (96%) rename tests/{PhpSpreadsheet => PhpSpreadsheetTests}/Worksheet/WorksheetRowTest.php (96%) diff --git a/composer.json b/composer.json index 41864bfd..f5ec8def 100644 --- a/composer.json +++ b/composer.json @@ -50,7 +50,7 @@ }, "autoload-dev": { "psr-4": { - "PhpSpreadsheet\\Tests\\": "tests/PhpSpreadsheet" + "PhpSpreadsheetTests\\": "tests/PhpSpreadsheetTests" } } } diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 2843d1a5..52bbf2c7 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -8,7 +8,7 @@ - ./tests/PhpSpreadsheet + ./tests/PhpSpreadsheetTests diff --git a/tests/PhpSpreadsheet/Calculation/DateTimeTest.php b/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php similarity index 99% rename from tests/PhpSpreadsheet/Calculation/DateTimeTest.php rename to tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php index 9a46cbda..6c72d6f8 100644 --- a/tests/PhpSpreadsheet/Calculation/DateTimeTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php @@ -1,6 +1,6 @@ complexAssert = new \PhpSpreadsheet\Tests\Custom\ComplexAssert(); + $this->complexAssert = new \PhpSpreadsheetTests\Custom\ComplexAssert(); Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL); } diff --git a/tests/PhpSpreadsheet/Calculation/FinancialTest.php b/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php similarity index 99% rename from tests/PhpSpreadsheet/Calculation/FinancialTest.php rename to tests/PhpSpreadsheetTests/Calculation/FinancialTest.php index 61b3752c..48c49b60 100644 --- a/tests/PhpSpreadsheet/Calculation/FinancialTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php @@ -1,6 +1,6 @@ Date: Thu, 25 Aug 2016 14:21:52 +0900 Subject: [PATCH 08/29] Fix unit tests for MDETERM() --- .../Calculation/MathTrigTest.php | 3 -- tests/data/Calculation/MathTrig/MDETERM.php | 40 +++++++++---------- 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php b/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php index 5875f86c..efc48f46 100644 --- a/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php @@ -255,12 +255,9 @@ class MathTrigTest extends \PHPUnit_Framework_TestCase /** * @dataProvider providerMDETERM - * @group fail19 */ public function testMDETERM() { - $this->markTestIncomplete('TODO: This test should be fixed'); - $args = func_get_args(); $expectedResult = array_pop($args); $result = call_user_func_array([MathTrig::class, 'MDETERM'], $args); diff --git a/tests/data/Calculation/MathTrig/MDETERM.php b/tests/data/Calculation/MathTrig/MDETERM.php index e12c4b69..961ebf70 100644 --- a/tests/data/Calculation/MathTrig/MDETERM.php +++ b/tests/data/Calculation/MathTrig/MDETERM.php @@ -19,27 +19,27 @@ return [ 9, ], ], - 6.6613381477509402E-16, + 0, ], [ [ [ - 1.1000000000000001, - 2.2000000000000002, - 3.2999999999999998, + 1.1, + 2.2, + 3.3, ], [ - 4.4000000000000004, + 4.4, 5.5, - 6.5999999999999996, + 6.6, ], [ - 7.7000000000000002, - 8.8000000000000007, - 9.9000000000000004, + 7.7, + 8.8, + 9.9, ], ], - 1.61204383175573E-15, + 0, ], [ [ @@ -59,7 +59,7 @@ return [ 90, ], ], - -4.2632564145606003E-12, + 0, ], [ [ @@ -117,30 +117,30 @@ return [ [ [ [ - 0.20000000000000001, + 0.2, 1, ], [ - 0.34999999999999998, - 10.800000000000001, + 0.35, + 10.8, ], ], - 1.8100000000000001, + 1.81, ], [ [ [ - 0.20000000000000001, + 0.2, 1, - -0.90000000000000002, + -0.9, ], [ - 0.34999999999999998, - 10.800000000000001, + 0.35, + 10.8, 4, ], [ - -3.1499999999999999, + -3.15, 5, null, ], From a85f1bdbedd07b7b82914eb512c751806c35dbd3 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 18:46:02 +0900 Subject: [PATCH 09/29] Apply Scrutinizer patches for spacing --- .../CachedObjectStorage/Wincache.php | 2 +- src/PhpSpreadsheet/Calculation.php | 96 ++-- src/PhpSpreadsheet/Calculation/DateTime.php | 6 +- src/PhpSpreadsheet/Calculation/Financial.php | 26 +- src/PhpSpreadsheet/Calculation/Logical.php | 4 +- src/PhpSpreadsheet/Calculation/LookupRef.php | 2 +- src/PhpSpreadsheet/Calculation/MathTrig.php | 2 +- .../Calculation/Statistical.php | 4 +- src/PhpSpreadsheet/Chart/DataSeries.php | 4 +- src/PhpSpreadsheet/Chart/Legend.php | 12 +- src/PhpSpreadsheet/Chart/Renderer/JpGraph.php | 18 +- src/PhpSpreadsheet/Reader/CSV.php | 2 +- src/PhpSpreadsheet/Reader/Excel2007.php | 10 +- src/PhpSpreadsheet/Reader/Excel5.php | 2 +- src/PhpSpreadsheet/Reader/Gnumeric.php | 12 +- src/PhpSpreadsheet/Reader/OOCalc.php | 8 +- src/PhpSpreadsheet/Reader/SYLK.php | 4 +- src/PhpSpreadsheet/ReferenceHelper.php | 12 +- src/PhpSpreadsheet/Shared/CodePage.php | 104 ++-- src/PhpSpreadsheet/Shared/Date.php | 4 +- src/PhpSpreadsheet/Shared/Excel5.php | 4 +- src/PhpSpreadsheet/Shared/Font.php | 4 +- src/PhpSpreadsheet/Shared/OLE/PPS.php | 2 +- src/PhpSpreadsheet/Shared/OLE/PPS/Root.php | 36 +- src/PhpSpreadsheet/Shared/PCLZip/PclZip.php | 4 +- src/PhpSpreadsheet/Shared/PasswordHasher.php | 8 +- src/PhpSpreadsheet/Style.php | 2 +- src/PhpSpreadsheet/Style/Alignment.php | 4 +- src/PhpSpreadsheet/Style/Color.php | 112 ++-- src/PhpSpreadsheet/Style/NumberFormat.php | 14 +- src/PhpSpreadsheet/Worksheet.php | 4 +- src/PhpSpreadsheet/Worksheet/AutoFilter.php | 2 +- src/PhpSpreadsheet/Worksheet/BaseDrawing.php | 3 +- src/PhpSpreadsheet/Writer/CSV.php | 8 +- src/PhpSpreadsheet/Writer/Excel2007.php | 8 +- .../Writer/Excel2007/ContentTypes.php | 2 +- src/PhpSpreadsheet/Writer/Excel2007/Rels.php | 2 +- .../Writer/Excel2007/StringTable.php | 2 +- src/PhpSpreadsheet/Writer/Excel2007/Style.php | 8 +- .../Writer/Excel2007/Worksheet.php | 15 +- .../Writer/Excel5/BIFFwriter.php | 24 +- src/PhpSpreadsheet/Writer/Excel5/Parser.php | 522 +++++++++--------- src/PhpSpreadsheet/Writer/Excel5/Workbook.php | 150 ++--- .../Writer/Excel5/Worksheet.php | 430 +++++++-------- src/PhpSpreadsheet/Writer/Excel5/Xf.php | 28 +- src/PhpSpreadsheet/Writer/HTML.php | 10 +- src/PhpSpreadsheet/Writer/PDF/Core.php | 132 ++--- src/PhpSpreadsheet/Writer/PDF/DomPDF.php | 2 +- src/PhpSpreadsheet/Writer/PDF/MPDF.php | 2 +- src/PhpSpreadsheet/Writer/PDF/TcPDF.php | 2 +- tests/data/Shared/Date/DateTimeToExcel.php | 30 +- .../data/Shared/Date/ExcelToTimestamp1900.php | 28 +- .../Date/ExcelToTimestamp1900Timezone.php | 44 +- .../data/Shared/Date/ExcelToTimestamp1904.php | 18 +- tests/data/Shared/Date/FormatCodes.php | 72 +-- .../Shared/Date/FormattedPHPToExcel1900.php | 22 +- .../data/Shared/Date/TimestampToExcel1900.php | 22 +- .../data/Shared/Date/TimestampToExcel1904.php | 12 +- 58 files changed, 1061 insertions(+), 1067 deletions(-) diff --git a/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php b/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php index de9e2f94..caea7dab 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php @@ -245,7 +245,7 @@ class Wincache extends CacheBase implements ICache */ public function __construct(\PhpSpreadsheet\Worksheet $parent, $arguments) { - $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; + $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; if (is_null($this->cachePrefix)) { $baseUnique = $this->getUniqueID(); diff --git a/src/PhpSpreadsheet/Calculation.php b/src/PhpSpreadsheet/Calculation.php index e4d1b32d..1a9cf14a 100644 --- a/src/PhpSpreadsheet/Calculation.php +++ b/src/PhpSpreadsheet/Calculation.php @@ -109,10 +109,10 @@ class Calculation * @var array */ private static $operators = [ - '+' => true, '-' => true, '*' => true, '/' => true, - '^' => true, '&' => true, '%' => false, '~' => false, - '>' => true, '<' => true, '=' => true, '>=' => true, - '<=' => true, '<>' => true, '|' => true, ':' => true, + '+' => true, '-' => true, '*' => true, '/' => true, + '^' => true, '&' => true, '%' => false, '~' => false, + '>' => true, '<' => true, '=' => true, '>=' => true, + '<=' => true, '<>' => true, '|' => true, ':' => true, ]; /** @@ -121,10 +121,10 @@ class Calculation * @var array */ private static $binaryOperators = [ - '+' => true, '-' => true, '*' => true, '/' => true, - '^' => true, '&' => true, '>' => true, '<' => true, - '=' => true, '>=' => true, '<=' => true, '<>' => true, - '|' => true, ':' => true, + '+' => true, '-' => true, '*' => true, '/' => true, + '^' => true, '&' => true, '>' => true, '<' => true, + '=' => true, '>=' => true, '<=' => true, '<>' => true, + '|' => true, ':' => true, ]; /** @@ -189,7 +189,7 @@ class Calculation * * @var string */ - private static $localeLanguage = 'en_us'; // US English (default locale) + private static $localeLanguage = 'en_us'; // US English (default locale) /** * List of available locale settings @@ -198,7 +198,7 @@ class Calculation * @var string[] */ private static $validLocaleLanguages = [ - 'en', // English (default language) + 'en', // English (default language) ]; /** @@ -2279,7 +2279,7 @@ class Calculation // Retrieve the list of locale or language specific function names $localeFunctions = file($functionNamesFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($localeFunctions as $localeFunction) { - list($localeFunction) = explode('##', $localeFunction); // Strip out comments + list($localeFunction) = explode('##', $localeFunction); // Strip out comments if (strpos($localeFunction, '=') !== false) { list($fName, $lfName) = explode('=', $localeFunction); $fName = trim($fName); @@ -2304,7 +2304,7 @@ class Calculation if (file_exists($configFile)) { $localeSettings = file($configFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($localeSettings as $localeSetting) { - list($localeSetting) = explode('##', $localeSetting); // Strip out comments + list($localeSetting) = explode('##', $localeSetting); // Strip out comments if (strpos($localeSetting, '=') !== false) { list($settingName, $settingValue) = explode('=', $localeSetting); $settingName = strtoupper(trim($settingName)); @@ -3034,12 +3034,12 @@ class Calculation // These operators always work on two values // Array key is the operator, the value indicates whether this is a left or right associative operator private static $operatorAssociativity = [ - '^' => 0, // Exponentiation - '*' => 0, '/' => 0, // Multiplication and Division - '+' => 0, '-' => 0, // Addition and Subtraction - '&' => 0, // Concatenation - '|' => 0, ':' => 0, // Intersect and Range - '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0, // Comparison + '^' => 0, // Exponentiation + '*' => 0, '/' => 0, // Multiplication and Division + '+' => 0, '-' => 0, // Addition and Subtraction + '&' => 0, // Concatenation + '|' => 0, ':' => 0, // Intersect and Range + '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0, // Comparison ]; // Comparison (Boolean) Operators @@ -3050,15 +3050,15 @@ class Calculation // This list includes all valid operators, whether binary (including boolean) or unary (such as %) // Array key is the operator, the value is its precedence private static $operatorPrecedence = [ - ':' => 8, // Range - '|' => 7, // Intersect - '~' => 6, // Negation - '%' => 5, // Percentage - '^' => 4, // Exponentiation - '*' => 3, '/' => 3, // Multiplication and Division - '+' => 2, '-' => 2, // Addition and Subtraction - '&' => 1, // Concatenation - '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0, // Comparison + ':' => 8, // Range + '|' => 7, // Intersect + '~' => 6, // Negation + '%' => 5, // Percentage + '^' => 4, // Exponentiation + '*' => 3, '/' => 3, // Multiplication and Division + '+' => 2, '-' => 2, // Addition and Subtraction + '&' => 1, // Concatenation + '>' => 0, '<' => 0, '=' => 0, '>=' => 0, '<=' => 0, '<>' => 0, // Comparison ]; // Convert infix to postfix notation @@ -3085,9 +3085,9 @@ class Calculation $index = 0; $stack = new Calculation\Token\Stack(); $output = []; - $expectingOperator = false; // We use this test in syntax-checking the expression to determine when a + $expectingOperator = false; // We use this test in syntax-checking the expression to determine when a // - is a negation or + is a positive operator rather than an operation - $expectingOperand = false; // We use this test in syntax-checking the expression to determine whether an operand + $expectingOperand = false; // We use this test in syntax-checking the expression to determine whether an operand // should be null in a function call // The guts of the lexical parser // Loop through the formula extracting each operator and operand in turn @@ -3107,26 +3107,26 @@ class Calculation if ($opCharacter == '-' && !$expectingOperator) { // Is it a negation instead of a minus? //echo 'Element is a Negation operator', PHP_EOL; - $stack->push('Unary Operator', '~'); // Put a negation on the stack - ++$index; // and drop the negation symbol + $stack->push('Unary Operator', '~'); // Put a negation on the stack + ++$index; // and drop the negation symbol } elseif ($opCharacter == '%' && $expectingOperator) { //echo 'Element is a Percentage operator', PHP_EOL; - $stack->push('Unary Operator', '%'); // Put a percentage on the stack + $stack->push('Unary Operator', '%'); // Put a percentage on the stack ++$index; } elseif ($opCharacter == '+' && !$expectingOperator) { // Positive (unary plus rather than binary operator plus) can be discarded? //echo 'Element is a Positive number, not Plus operator', PHP_EOL; - ++$index; // Drop the redundant plus symbol + ++$index; // Drop the redundant plus symbol } elseif ((($opCharacter == '~') || ($opCharacter == '|')) && (!$isOperandOrFunction)) { // We have to explicitly deny a tilde or pipe, because they are legal - return $this->raiseFormulaError("Formula Error: Illegal character '~'"); // on the stack but not in the input expression + return $this->raiseFormulaError("Formula Error: Illegal character '~'"); // on the stack but not in the input expression } elseif ((isset(self::$operators[$opCharacter]) or $isOperandOrFunction) && $expectingOperator) { // Are we putting an operator on the stack? //echo 'Element with value '.$opCharacter.' is an Operator', PHP_EOL; while ($stack->count() > 0 && ($o2 = $stack->last()) && isset(self::$operators[$o2['value']]) && @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) { - $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output + $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output } - $stack->push('Binary Operator', $opCharacter); // Finally put our current operator onto the stack + $stack->push('Binary Operator', $opCharacter); // Finally put our current operator onto the stack ++$index; $expectingOperator = false; } elseif ($opCharacter == ')' && $expectingOperator) { // Are we expecting to close a parenthesis? @@ -3141,10 +3141,10 @@ class Calculation } $d = $stack->last(2); if (preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $d['value'], $matches)) { // Did this parenthesis just close a function? - $functionName = $matches[1]; // Get the function name + $functionName = $matches[1]; // Get the function name //echo 'Closed Function is '.$functionName, PHP_EOL; $d = $stack->pop(); - $argumentCount = $d['value']; // See how many arguments there were (argument count is the next value stored on the stack) + $argumentCount = $d['value']; // See how many arguments there were (argument count is the next value stored on the stack) //if ($argumentCount == 0) { // echo 'With no arguments', PHP_EOL; //} elseif ($argumentCount == 1) { @@ -3152,8 +3152,8 @@ class Calculation //} else { // echo 'With '.$argumentCount.' arguments', PHP_EOL; //} - $output[] = $d; // Dump the argument count on the output - $output[] = $stack->pop(); // Pop the function and push onto the output + $output[] = $d; // Dump the argument count on the output + $output[] = $stack->pop(); // Pop the function and push onto the output if (isset(self::$controlFunctions[$functionName])) { //echo 'Built-in function '.$functionName, PHP_EOL; $expectedArgumentCount = self::$controlFunctions[$functionName]['argumentCount']; @@ -3217,7 +3217,7 @@ class Calculation if ($o2 === null) { return $this->raiseFormulaError('Formula Error: Unexpected ,'); } else { - $output[] = $o2; // pop the argument expression stuff and push onto the output + $output[] = $o2; // pop the argument expression stuff and push onto the output } } // If we've a comma when we're expecting an operand, then what we actually have is a null operand; @@ -3231,8 +3231,8 @@ class Calculation return $this->raiseFormulaError('Formula Error: Unexpected ,'); } $d = $stack->pop(); - $stack->push($d['type'], ++$d['value'], $d['reference']); // increment the argument count - $stack->push('Brace', '('); // put the ( back on, we'll need to pop back to it again + $stack->push($d['type'], ++$d['value'], $d['reference']); // increment the argument count + $stack->push('Brace', '('); // put the ( back on, we'll need to pop back to it again $expectingOperator = false; $expectingOperand = true; ++$index; @@ -3311,13 +3311,13 @@ class Calculation if ((is_integer($startRowColRef)) && (ctype_digit($val)) && ($startRowColRef <= 1048576) && ($val <= 1048576)) { // Row range - $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestColumn() : 'XFD'; // Max 16,384 columns for Excel2007 + $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestColumn() : 'XFD'; // Max 16,384 columns for Excel2007 $output[count($output) - 1]['value'] = $rangeWS1 . 'A' . $startRowColRef; $val = $rangeWS2 . $endRowColRef . $val; } elseif ((ctype_alpha($startRowColRef)) && (ctype_alpha($val)) && (strlen($startRowColRef) <= 3) && (strlen($val) <= 3)) { // Column range - $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestRow() : 1048576; // Max 1,048,576 rows for Excel2007 + $endRowColRef = ($pCellParent !== null) ? $pCellParent->getHighestRow() : 1048576; // Max 1,048,576 rows for Excel2007 $output[count($output) - 1]['value'] = $rangeWS1 . strtoupper($startRowColRef) . '1'; $val = $rangeWS2 . $val . $endRowColRef; } @@ -3395,9 +3395,9 @@ class Calculation ($o2 = $stack->last()) && isset(self::$operators[$o2['value']]) && @(self::$operatorAssociativity[$opCharacter] ? self::$operatorPrecedence[$opCharacter] < self::$operatorPrecedence[$o2['value']] : self::$operatorPrecedence[$opCharacter] <= self::$operatorPrecedence[$o2['value']])) { - $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output + $output[] = $stack->pop(); // Swap operands and higher precedence operators from the stack to the output } - $stack->push('Binary Operator', '|'); // Put an Intersect Operator on the stack + $stack->push('Binary Operator', '|'); // Put an Intersect Operator on the stack $expectingOperator = false; } } @@ -3405,7 +3405,7 @@ class Calculation while (($op = $stack->pop()) !== null) { // pop everything off the stack and push onto output if ((is_array($op) && $op['value'] == '(') || ($op === '(')) { - return $this->raiseFormulaError("Formula Error: Expecting ')'"); // if there are any opening braces on the stack, then braces were unbalanced + return $this->raiseFormulaError("Formula Error: Expecting ')'"); // if there are any opening braces on the stack, then braces were unbalanced } $output[] = $op; } diff --git a/src/PhpSpreadsheet/Calculation/DateTime.php b/src/PhpSpreadsheet/Calculation/DateTime.php index b6feca89..d0b9d698 100644 --- a/src/PhpSpreadsheet/Calculation/DateTime.php +++ b/src/PhpSpreadsheet/Calculation/DateTime.php @@ -424,7 +424,7 @@ class DateTime return (float) \PhpSpreadsheet\Shared\Date::formattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second); case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpSpreadsheet\Shared\Date::formattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; // -2147472000 + 3600 + return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpSpreadsheet\Shared\Date::formattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; // -2147472000 + 3600 case Functions::RETURNDATE_PHP_OBJECT: $dayAdjust = 0; if ($hour < 0) { @@ -1036,7 +1036,7 @@ class DateTime $startDoW = self::DAYOFWEEK($startDate, 3); if (self::DAYOFWEEK($startDate, 3) >= 5) { - $startDate += ($decrementing) ? -$startDoW + 4: 7 - $startDoW; + $startDate += ($decrementing) ? -$startDoW + 4 : 7 - $startDoW; ($decrementing) ? $endDays++ : $endDays--; } @@ -1046,7 +1046,7 @@ class DateTime // Adjust the calculated end date if it falls over a weekend $endDoW = self::DAYOFWEEK($endDate, 3); if ($endDoW >= 5) { - $endDate += ($decrementing) ? -$endDoW + 4: 7 - $endDoW; + $endDate += ($decrementing) ? -$endDoW + 4 : 7 - $endDoW; } // Test any extra holiday parameters diff --git a/src/PhpSpreadsheet/Calculation/Financial.php b/src/PhpSpreadsheet/Calculation/Financial.php index e294a26c..033695b1 100644 --- a/src/PhpSpreadsheet/Calculation/Financial.php +++ b/src/PhpSpreadsheet/Calculation/Financial.php @@ -180,9 +180,9 @@ class Financial $firstinterest = Functions::flattenSingleValue($firstinterest); $settlement = Functions::flattenSingleValue($settlement); $rate = Functions::flattenSingleValue($rate); - $par = (is_null($par)) ? 1000 : Functions::flattenSingleValue($par); - $frequency = (is_null($frequency)) ? 1 : Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : Functions::flattenSingleValue($basis); + $par = (is_null($par)) ? 1000 : Functions::flattenSingleValue($par); + $frequency = (is_null($frequency)) ? 1 : Functions::flattenSingleValue($frequency); + $basis = (is_null($basis)) ? 0 : Functions::flattenSingleValue($basis); // Validate if ((is_numeric($rate)) && (is_numeric($par))) { @@ -230,8 +230,8 @@ class Financial $issue = Functions::flattenSingleValue($issue); $settlement = Functions::flattenSingleValue($settlement); $rate = Functions::flattenSingleValue($rate); - $par = (is_null($par)) ? 1000 : Functions::flattenSingleValue($par); - $basis = (is_null($basis)) ? 0 : Functions::flattenSingleValue($basis); + $par = (is_null($par)) ? 1000 : Functions::flattenSingleValue($par); + $basis = (is_null($basis)) ? 0 : Functions::flattenSingleValue($basis); // Validate if ((is_numeric($rate)) && (is_numeric($par))) { @@ -290,7 +290,7 @@ class Financial $salvage = Functions::flattenSingleValue($salvage); $period = floor(Functions::flattenSingleValue($period)); $rate = Functions::flattenSingleValue($rate); - $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); + $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); // The depreciation coefficients are: // Life of assets (1/rate) Depreciation coefficient @@ -617,7 +617,7 @@ class Financial $settlement = Functions::flattenSingleValue($settlement); $maturity = Functions::flattenSingleValue($maturity); $frequency = (int) Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); + $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); if (is_string($settlement = DateTime::getDateValue($settlement))) { return Functions::VALUE(); @@ -672,7 +672,7 @@ class Financial $settlement = Functions::flattenSingleValue($settlement); $maturity = Functions::flattenSingleValue($maturity); $frequency = (int) Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); + $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); if (is_string($settlement = DateTime::getDateValue($settlement))) { return Functions::VALUE(); @@ -743,7 +743,7 @@ class Financial $settlement = Functions::flattenSingleValue($settlement); $maturity = Functions::flattenSingleValue($maturity); $frequency = (int) Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); + $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); if (is_string($settlement = DateTime::getDateValue($settlement))) { return Functions::VALUE(); @@ -1619,7 +1619,7 @@ class Financial $yield = (float) Functions::flattenSingleValue($yield); $redemption = (float) Functions::flattenSingleValue($redemption); $frequency = (int) Functions::flattenSingleValue($frequency); - $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); + $basis = (is_null($basis)) ? 0 : (int) Functions::flattenSingleValue($basis); if (is_string($settlement = DateTime::getDateValue($settlement))) { return Functions::VALUE(); @@ -1828,9 +1828,9 @@ class Financial $nper = (int) Functions::flattenSingleValue($nper); $pmt = Functions::flattenSingleValue($pmt); $pv = Functions::flattenSingleValue($pv); - $fv = (is_null($fv)) ? 0.0 : Functions::flattenSingleValue($fv); - $type = (is_null($type)) ? 0 : (int) Functions::flattenSingleValue($type); - $guess = (is_null($guess)) ? 0.1 : Functions::flattenSingleValue($guess); + $fv = (is_null($fv)) ? 0.0 : Functions::flattenSingleValue($fv); + $type = (is_null($type)) ? 0 : (int) Functions::flattenSingleValue($type); + $guess = (is_null($guess)) ? 0.1 : Functions::flattenSingleValue($guess); $rate = $guess; if (abs($rate) < FINANCIAL_PRECISION) { diff --git a/src/PhpSpreadsheet/Calculation/Logical.php b/src/PhpSpreadsheet/Calculation/Logical.php index 166dbf11..7fb896ae 100644 --- a/src/PhpSpreadsheet/Calculation/Logical.php +++ b/src/PhpSpreadsheet/Calculation/Logical.php @@ -237,8 +237,8 @@ class Logical */ public static function statementIf($condition = true, $returnIfTrue = 0, $returnIfFalse = false) { - $condition = (is_null($condition)) ? true : (boolean) Functions::flattenSingleValue($condition); - $returnIfTrue = (is_null($returnIfTrue)) ? 0 : Functions::flattenSingleValue($returnIfTrue); + $condition = (is_null($condition)) ? true : (boolean) Functions::flattenSingleValue($condition); + $returnIfTrue = (is_null($returnIfTrue)) ? 0 : Functions::flattenSingleValue($returnIfTrue); $returnIfFalse = (is_null($returnIfFalse)) ? false : Functions::flattenSingleValue($returnIfFalse); return ($condition) ? $returnIfTrue : $returnIfFalse; diff --git a/src/PhpSpreadsheet/Calculation/LookupRef.php b/src/PhpSpreadsheet/Calculation/LookupRef.php index 4c9ac7bf..2cc37f32 100644 --- a/src/PhpSpreadsheet/Calculation/LookupRef.php +++ b/src/PhpSpreadsheet/Calculation/LookupRef.php @@ -260,7 +260,7 @@ class LookupRef $args = func_get_args(); $pCell = array_pop($args); - $linkURL = (is_null($linkURL)) ? '' : Functions::flattenSingleValue($linkURL); + $linkURL = (is_null($linkURL)) ? '' : Functions::flattenSingleValue($linkURL); $displayName = (is_null($displayName)) ? '' : Functions::flattenSingleValue($displayName); if ((!is_object($pCell)) || (trim($linkURL) == '')) { diff --git a/src/PhpSpreadsheet/Calculation/MathTrig.php b/src/PhpSpreadsheet/Calculation/MathTrig.php index e9fe621d..98c31cee 100644 --- a/src/PhpSpreadsheet/Calculation/MathTrig.php +++ b/src/PhpSpreadsheet/Calculation/MathTrig.php @@ -913,7 +913,7 @@ class MathTrig public static function ROMAN($aValue, $style = 0) { $aValue = Functions::flattenSingleValue($aValue); - $style = (is_null($style)) ? 0 : (integer) Functions::flattenSingleValue($style); + $style = (is_null($style)) ? 0 : (integer) Functions::flattenSingleValue($style); if ((!is_numeric($aValue)) || ($aValue < 0) || ($aValue >= 4000)) { return Functions::VALUE(); } diff --git a/src/PhpSpreadsheet/Calculation/Statistical.php b/src/PhpSpreadsheet/Calculation/Statistical.php index 7bb2cd8c..83bdb77f 100644 --- a/src/PhpSpreadsheet/Calculation/Statistical.php +++ b/src/PhpSpreadsheet/Calculation/Statistical.php @@ -520,8 +520,8 @@ class Statistical ]; // Define lower and upper region break-points. - $p_low = 0.02425; //Use lower region approx. below this - $p_high = 1 - $p_low; //Use upper region approx. above this + $p_low = 0.02425; //Use lower region approx. below this + $p_high = 1 - $p_low; //Use upper region approx. above this if (0 < $p && $p < $p_low) { // Rational approximation for lower region. diff --git a/src/PhpSpreadsheet/Chart/DataSeries.php b/src/PhpSpreadsheet/Chart/DataSeries.php index 109a0c7b..39b3a395 100644 --- a/src/PhpSpreadsheet/Chart/DataSeries.php +++ b/src/PhpSpreadsheet/Chart/DataSeries.php @@ -35,14 +35,14 @@ class DataSeries const TYPE_PIECHART = 'pieChart'; const TYPE_PIECHART_3D = 'pie3DChart'; const TYPE_DOUGHTNUTCHART = 'doughnutChart'; - const TYPE_DONUTCHART = self::TYPE_DOUGHTNUTCHART; // Synonym + const TYPE_DONUTCHART = self::TYPE_DOUGHTNUTCHART; // Synonym const TYPE_SCATTERCHART = 'scatterChart'; const TYPE_SURFACECHART = 'surfaceChart'; const TYPE_SURFACECHART_3D = 'surface3DChart'; const TYPE_RADARCHART = 'radarChart'; const TYPE_BUBBLECHART = 'bubbleChart'; const TYPE_STOCKCHART = 'stockChart'; - const TYPE_CANDLECHART = self::TYPE_STOCKCHART; // Synonym + const TYPE_CANDLECHART = self::TYPE_STOCKCHART; // Synonym const GROUPING_CLUSTERED = 'clustered'; const GROUPING_STACKED = 'stacked'; diff --git a/src/PhpSpreadsheet/Chart/Legend.php b/src/PhpSpreadsheet/Chart/Legend.php index 04efee57..999c3de4 100644 --- a/src/PhpSpreadsheet/Chart/Legend.php +++ b/src/PhpSpreadsheet/Chart/Legend.php @@ -29,12 +29,12 @@ namespace PhpSpreadsheet\Chart; class Legend { /** Legend positions */ - const XL_LEGEND_POSITION_BOTTOM = -4107; // Below the chart. - const XL_LEGEND_POSITION_CORNER = 2; // In the upper right-hand corner of the chart border. - const XL_LEGEND_POSITION_CUSTOM = -4161; // A custom position. - const XL_LEGEND_POSITION_LEFT = -4131; // Left of the chart. - const XL_LEGEND_POSITION_RIGHT = -4152; // Right of the chart. - const XL_LEGEND_POSITION_TOP = -4160; // Above the chart. + const XL_LEGEND_POSITION_BOTTOM = -4107; // Below the chart. + const XL_LEGEND_POSITION_CORNER = 2; // In the upper right-hand corner of the chart border. + const XL_LEGEND_POSITION_CUSTOM = -4161; // A custom position. + const XL_LEGEND_POSITION_LEFT = -4131; // Left of the chart. + const XL_LEGEND_POSITION_RIGHT = -4152; // Right of the chart. + const XL_LEGEND_POSITION_TOP = -4160; // Above the chart. const POSITION_RIGHT = 'r'; const POSITION_LEFT = 'l'; diff --git a/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php b/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php index 39c09ed1..b5032479 100644 --- a/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php +++ b/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php @@ -33,10 +33,10 @@ class JpGraph private static $height = 480; private static $colourSet = [ - 'mediumpurple1', 'palegreen3', 'gold1', 'cadetblue1', - 'darkmagenta', 'coral', 'dodgerblue3', 'eggplant', - 'mediumblue', 'magenta', 'sandybrown', 'cyan', - 'firebrick1', 'forestgreen', 'deeppink4', 'darkolivegreen', + 'mediumpurple1', 'palegreen3', 'gold1', 'cadetblue1', + 'darkmagenta', 'coral', 'dodgerblue3', 'eggplant', + 'mediumblue', 'magenta', 'sandybrown', 'cyan', + 'firebrick1', 'forestgreen', 'deeppink4', 'darkolivegreen', 'goldenrod2', ]; @@ -178,21 +178,21 @@ class JpGraph $legendOverlay = $legend->getOverlay(); switch ($legendPosition) { case 'r': - $this->graph->legend->SetPos(0.01, 0.5, 'right', 'center'); // right + $this->graph->legend->SetPos(0.01, 0.5, 'right', 'center'); // right $this->graph->legend->SetColumns(1); break; case 'l': - $this->graph->legend->SetPos(0.01, 0.5, 'left', 'center'); // left + $this->graph->legend->SetPos(0.01, 0.5, 'left', 'center'); // left $this->graph->legend->SetColumns(1); break; case 't': - $this->graph->legend->SetPos(0.5, 0.01, 'center', 'top'); // top + $this->graph->legend->SetPos(0.5, 0.01, 'center', 'top'); // top break; case 'b': - $this->graph->legend->SetPos(0.5, 0.99, 'center', 'bottom'); // bottom + $this->graph->legend->SetPos(0.5, 0.99, 'center', 'bottom'); // bottom break; default: - $this->graph->legend->SetPos(0.01, 0.01, 'right', 'top'); // top-right + $this->graph->legend->SetPos(0.01, 0.01, 'right', 'top'); // top-right $this->graph->legend->SetColumns(1); break; } diff --git a/src/PhpSpreadsheet/Reader/CSV.php b/src/PhpSpreadsheet/Reader/CSV.php index 7e11073f..595ffe27 100644 --- a/src/PhpSpreadsheet/Reader/CSV.php +++ b/src/PhpSpreadsheet/Reader/CSV.php @@ -260,7 +260,7 @@ class CSV extends BaseReader implements IReader // Set our starting row based on whether we're in contiguous mode or not $currentRow = 1; if ($this->contiguous) { - $currentRow = ($this->contiguousRow == -1) ? $sheet->getHighestRow(): $this->contiguousRow; + $currentRow = ($this->contiguousRow == -1) ? $sheet->getHighestRow() : $this->contiguousRow; } // Loop through each line of the file in turn diff --git a/src/PhpSpreadsheet/Reader/Excel2007.php b/src/PhpSpreadsheet/Reader/Excel2007.php index 84702691..0642ca00 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007.php +++ b/src/PhpSpreadsheet/Reader/Excel2007.php @@ -136,7 +136,7 @@ class Excel2007 extends BaseReader implements IReader 'SimpleXMLElement', \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ) - ); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" + ); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" if ($xmlWorkbook->sheets) { foreach ($xmlWorkbook->sheets->sheet as $eleSheet) { @@ -541,7 +541,7 @@ class Excel2007 extends BaseReader implements IReader } if (!is_null($macros)) { - $macrosCode = $this->getFromZipArchive($zip, 'xl/vbaProject.bin');//vbaProject.bin always in 'xl' dir and always named vbaProject.bin + $macrosCode = $this->getFromZipArchive($zip, 'xl/vbaProject.bin'); //vbaProject.bin always in 'xl' dir and always named vbaProject.bin if ($macrosCode !== false) { $excel->setMacrosCode($macrosCode); $excel->setHasMacros(true); @@ -1313,7 +1313,7 @@ class Excel2007 extends BaseReader implements IReader foreach (\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($hyperlink['ref']) as $cellReference) { $cell = $docSheet->getCell($cellReference); if (isset($linkRel['id'])) { - $hyperlinkUrl = $hyperlinks[ (string) $linkRel['id'] ]; + $hyperlinkUrl = $hyperlinks[(string) $linkRel['id']]; if (isset($hyperlink['location'])) { $hyperlinkUrl .= '#' . (string) $hyperlink['location']; } @@ -1740,10 +1740,10 @@ class Excel2007 extends BaseReader implements IReader } break; case '_xlnm.Print_Area': - $rangeSets = explode(',', $extractedRange); // FIXME: what if sheetname contains comma? + $rangeSets = explode(',', $extractedRange); // FIXME: what if sheetname contains comma? $newRangeSets = []; foreach ($rangeSets as $rangeSet) { - $range = explode('!', $rangeSet); // FIXME: what if sheetname contains exclamation mark? + $range = explode('!', $rangeSet); // FIXME: what if sheetname contains exclamation mark? $rangeSet = isset($range[1]) ? $range[1] : $range[0]; if (strpos($rangeSet, ':') === false) { $rangeSet = $rangeSet . ':' . $rangeSet; diff --git a/src/PhpSpreadsheet/Reader/Excel5.php b/src/PhpSpreadsheet/Reader/Excel5.php index c3eb9735..f6aa8b19 100644 --- a/src/PhpSpreadsheet/Reader/Excel5.php +++ b/src/PhpSpreadsheet/Reader/Excel5.php @@ -1122,7 +1122,7 @@ class Excel5 extends BaseReader implements IReader // $range should look like one of these // Foo!$C$7:$J$66 // Bar!$A$1:$IV$2 - $explodes = explode('!', $range); // FIXME: what if sheetname contains exclamation mark? + $explodes = explode('!', $range); // FIXME: what if sheetname contains exclamation mark? $sheetName = trim($explodes[0], "'"); if (count($explodes) == 2) { if (strpos($explodes[1], ':') === false) { diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index 246b655f..0de29851 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -104,7 +104,7 @@ class Gnumeric extends BaseReader implements IReader $worksheetNames = []; while ($xml->read()) { if ($xml->name == 'gnm:SheetName' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node + $xml->read(); // Move onto the value node $worksheetNames[] = (string) $xml->value; } elseif ($xml->name == 'gnm:Sheets') { // break out of the loop once we've got our sheet names rather than parse the entire file @@ -145,14 +145,14 @@ class Gnumeric extends BaseReader implements IReader while ($xml->read()) { if ($xml->name == 'gnm:Name' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node + $xml->read(); // Move onto the value node $tmpInfo['worksheetName'] = (string) $xml->value; } elseif ($xml->name == 'gnm:MaxCol' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node + $xml->read(); // Move onto the value node $tmpInfo['lastColumnIndex'] = (int) $xml->value; $tmpInfo['totalColumns'] = (int) $xml->value + 1; } elseif ($xml->name == 'gnm:MaxRow' && $xml->nodeType == XMLReader::ELEMENT) { - $xml->read(); // Move onto the value node + $xml->read(); // Move onto the value node $tmpInfo['totalRows'] = (int) $xml->value + 1; break; } @@ -351,7 +351,7 @@ class Gnumeric extends BaseReader implements IReader if (isset($sheet->PrintInformation->Margins)) { foreach ($sheet->PrintInformation->Margins->children('gnm', true) as $key => $margin) { $marginAttributes = $margin->attributes(); - $marginSize = 72 / 100; // Default + $marginSize = 72 / 100; // Default switch ($marginAttributes['PrefUnit']) { case 'mm': $marginSize = intval($marginAttributes['Points']) / 100; @@ -437,7 +437,7 @@ class Gnumeric extends BaseReader implements IReader break; case '20': // Boolean $type = \PhpSpreadsheet\Cell\DataType::TYPE_BOOL; - $cell = ($cell == 'TRUE') ? true: false; + $cell = ($cell == 'TRUE') ? true : false; break; case '30': // Integer $cell = intval($cell); diff --git a/src/PhpSpreadsheet/Reader/OOCalc.php b/src/PhpSpreadsheet/Reader/OOCalc.php index 4d006b57..3162c225 100644 --- a/src/PhpSpreadsheet/Reader/OOCalc.php +++ b/src/PhpSpreadsheet/Reader/OOCalc.php @@ -626,10 +626,10 @@ class OOCalc extends BaseReader implements IReader foreach ($temp as &$value) { // Only replace in alternate array entries (i.e. non-quoted blocks) if ($tKey = !$tKey) { - $value = preg_replace('/\[([^\.]+)\.([^\.]+):\.([^\.]+)\]/Ui', '$1!$2:$3', $value); // Cell range reference in another sheet - $value = preg_replace('/\[([^\.]+)\.([^\.]+)\]/Ui', '$1!$2', $value); // Cell reference in another sheet - $value = preg_replace('/\[\.([^\.]+):\.([^\.]+)\]/Ui', '$1:$2', $value); // Cell range reference - $value = preg_replace('/\[\.([^\.]+)\]/Ui', '$1', $value); // Simple cell reference + $value = preg_replace('/\[([^\.]+)\.([^\.]+):\.([^\.]+)\]/Ui', '$1!$2:$3', $value); // Cell range reference in another sheet + $value = preg_replace('/\[([^\.]+)\.([^\.]+)\]/Ui', '$1!$2', $value); // Cell reference in another sheet + $value = preg_replace('/\[\.([^\.]+):\.([^\.]+)\]/Ui', '$1:$2', $value); // Cell range reference + $value = preg_replace('/\[\.([^\.]+)\]/Ui', '$1', $value); // Simple cell reference $value = \PhpSpreadsheet\Calculation::translateSeparator(';', ',', $value, $inBraces); } } diff --git a/src/PhpSpreadsheet/Reader/SYLK.php b/src/PhpSpreadsheet/Reader/SYLK.php index 33574f1e..4c68249f 100644 --- a/src/PhpSpreadsheet/Reader/SYLK.php +++ b/src/PhpSpreadsheet/Reader/SYLK.php @@ -219,8 +219,8 @@ class SYLK extends BaseReader implements IReader } $spreadsheet->setActiveSheetIndex($this->sheetIndex); - $fromFormats = ['\-', '\ ']; - $toFormats = ['-', ' ']; + $fromFormats = ['\-', '\ ']; + $toFormats = ['-', ' ']; // Loop through file $rowData = []; diff --git a/src/PhpSpreadsheet/ReferenceHelper.php b/src/PhpSpreadsheet/ReferenceHelper.php index 4e0c6c81..ba46a486 100644 --- a/src/PhpSpreadsheet/ReferenceHelper.php +++ b/src/PhpSpreadsheet/ReferenceHelper.php @@ -169,8 +169,7 @@ class ReferenceHelper { $aBreaks = $pSheet->getBreaks(); ($pNumCols > 0 || $pNumRows > 0) ? - uksort($aBreaks, ['self', 'cellReverseSort']) : - uksort($aBreaks, ['self', 'cellSort']); + uksort($aBreaks, ['self', 'cellReverseSort']) : uksort($aBreaks, ['self', 'cellSort']); foreach ($aBreaks as $key => $value) { if (self::cellAddressInDeleteRange($key, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols)) { @@ -230,8 +229,7 @@ class ReferenceHelper { $aHyperlinkCollection = $pSheet->getHyperlinkCollection(); ($pNumCols > 0 || $pNumRows > 0) ? - uksort($aHyperlinkCollection, ['self', 'cellReverseSort']) : - uksort($aHyperlinkCollection, ['self', 'cellSort']); + uksort($aHyperlinkCollection, ['self', 'cellReverseSort']) : uksort($aHyperlinkCollection, ['self', 'cellSort']); foreach ($aHyperlinkCollection as $key => $value) { $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); @@ -256,8 +254,7 @@ class ReferenceHelper { $aDataValidationCollection = $pSheet->getDataValidationCollection(); ($pNumCols > 0 || $pNumRows > 0) ? - uksort($aDataValidationCollection, ['self', 'cellReverseSort']) : - uksort($aDataValidationCollection, ['self', 'cellSort']); + uksort($aDataValidationCollection, ['self', 'cellReverseSort']) : uksort($aDataValidationCollection, ['self', 'cellSort']); foreach ($aDataValidationCollection as $key => $value) { $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); @@ -303,8 +300,7 @@ class ReferenceHelper { $aProtectedCells = $pSheet->getProtectedCells(); ($pNumCols > 0 || $pNumRows > 0) ? - uksort($aProtectedCells, ['self', 'cellReverseSort']) : - uksort($aProtectedCells, ['self', 'cellSort']); + uksort($aProtectedCells, ['self', 'cellReverseSort']) : uksort($aProtectedCells, ['self', 'cellSort']); foreach ($aProtectedCells as $key => $value) { $newReference = $this->updateCellReference($key, $pBefore, $pNumCols, $pNumRows); if ($key != $newReference) { diff --git a/src/PhpSpreadsheet/Shared/CodePage.php b/src/PhpSpreadsheet/Shared/CodePage.php index 4802a67a..4c7f8fad 100644 --- a/src/PhpSpreadsheet/Shared/CodePage.php +++ b/src/PhpSpreadsheet/Shared/CodePage.php @@ -40,117 +40,117 @@ class CodePage { switch ($codePage) { case 367: - return 'ASCII'; // ASCII + return 'ASCII'; // ASCII case 437: - return 'CP437'; // OEM US + return 'CP437'; // OEM US case 720: - throw new \PhpSpreadsheet\Exception('Code page 720 not supported.'); // OEM Arabic + throw new \PhpSpreadsheet\Exception('Code page 720 not supported.'); // OEM Arabic case 737: - return 'CP737'; // OEM Greek + return 'CP737'; // OEM Greek case 775: - return 'CP775'; // OEM Baltic + return 'CP775'; // OEM Baltic case 850: - return 'CP850'; // OEM Latin I + return 'CP850'; // OEM Latin I case 852: - return 'CP852'; // OEM Latin II (Central European) + return 'CP852'; // OEM Latin II (Central European) case 855: - return 'CP855'; // OEM Cyrillic + return 'CP855'; // OEM Cyrillic case 857: - return 'CP857'; // OEM Turkish + return 'CP857'; // OEM Turkish case 858: - return 'CP858'; // OEM Multilingual Latin I with Euro + return 'CP858'; // OEM Multilingual Latin I with Euro case 860: - return 'CP860'; // OEM Portugese + return 'CP860'; // OEM Portugese case 861: - return 'CP861'; // OEM Icelandic + return 'CP861'; // OEM Icelandic case 862: - return 'CP862'; // OEM Hebrew + return 'CP862'; // OEM Hebrew case 863: - return 'CP863'; // OEM Canadian (French) + return 'CP863'; // OEM Canadian (French) case 864: - return 'CP864'; // OEM Arabic + return 'CP864'; // OEM Arabic case 865: - return 'CP865'; // OEM Nordic + return 'CP865'; // OEM Nordic case 866: - return 'CP866'; // OEM Cyrillic (Russian) + return 'CP866'; // OEM Cyrillic (Russian) case 869: - return 'CP869'; // OEM Greek (Modern) + return 'CP869'; // OEM Greek (Modern) case 874: - return 'CP874'; // ANSI Thai + return 'CP874'; // ANSI Thai case 932: - return 'CP932'; // ANSI Japanese Shift-JIS + return 'CP932'; // ANSI Japanese Shift-JIS case 936: - return 'CP936'; // ANSI Chinese Simplified GBK + return 'CP936'; // ANSI Chinese Simplified GBK case 949: - return 'CP949'; // ANSI Korean (Wansung) + return 'CP949'; // ANSI Korean (Wansung) case 950: - return 'CP950'; // ANSI Chinese Traditional BIG5 + return 'CP950'; // ANSI Chinese Traditional BIG5 case 1200: return 'UTF-16LE'; // UTF-16 (BIFF8) case 1250: - return 'CP1250'; // ANSI Latin II (Central European) + return 'CP1250'; // ANSI Latin II (Central European) case 1251: - return 'CP1251'; // ANSI Cyrillic + return 'CP1251'; // ANSI Cyrillic case 0: // CodePage is not always correctly set when the xls file was saved by Apple's Numbers program case 1252: - return 'CP1252'; // ANSI Latin I (BIFF4-BIFF7) + return 'CP1252'; // ANSI Latin I (BIFF4-BIFF7) case 1253: - return 'CP1253'; // ANSI Greek + return 'CP1253'; // ANSI Greek case 1254: - return 'CP1254'; // ANSI Turkish + return 'CP1254'; // ANSI Turkish case 1255: - return 'CP1255'; // ANSI Hebrew + return 'CP1255'; // ANSI Hebrew case 1256: - return 'CP1256'; // ANSI Arabic + return 'CP1256'; // ANSI Arabic case 1257: - return 'CP1257'; // ANSI Baltic + return 'CP1257'; // ANSI Baltic case 1258: - return 'CP1258'; // ANSI Vietnamese + return 'CP1258'; // ANSI Vietnamese case 1361: - return 'CP1361'; // ANSI Korean (Johab) + return 'CP1361'; // ANSI Korean (Johab) case 10000: - return 'MAC'; // Apple Roman + return 'MAC'; // Apple Roman case 10001: - return 'CP932'; // Macintosh Japanese + return 'CP932'; // Macintosh Japanese case 10002: - return 'CP950'; // Macintosh Chinese Traditional + return 'CP950'; // Macintosh Chinese Traditional case 10003: - return 'CP1361'; // Macintosh Korean + return 'CP1361'; // Macintosh Korean case 10004: return 'MACARABIC'; // Apple Arabic case 10005: return 'MACHEBREW'; // Apple Hebrew case 10006: - return 'MACGREEK'; // Macintosh Greek + return 'MACGREEK'; // Macintosh Greek case 10007: - return 'MACCYRILLIC'; // Macintosh Cyrillic + return 'MACCYRILLIC'; // Macintosh Cyrillic case 10008: - return 'CP936'; // Macintosh - Simplified Chinese (GB 2312) + return 'CP936'; // Macintosh - Simplified Chinese (GB 2312) case 10010: - return 'MACROMANIA'; // Macintosh Romania + return 'MACROMANIA'; // Macintosh Romania case 10017: - return 'MACUKRAINE'; // Macintosh Ukraine + return 'MACUKRAINE'; // Macintosh Ukraine case 10021: - return 'MACTHAI'; // Macintosh Thai + return 'MACTHAI'; // Macintosh Thai case 10029: - return 'MACCENTRALEUROPE'; // Macintosh Central Europe + return 'MACCENTRALEUROPE'; // Macintosh Central Europe case 10079: - return 'MACICELAND'; // Macintosh Icelandic + return 'MACICELAND'; // Macintosh Icelandic case 10081: - return 'MACTURKISH'; // Macintosh Turkish + return 'MACTURKISH'; // Macintosh Turkish case 10082: - return 'MACCROATIAN'; // Macintosh Croatian + return 'MACCROATIAN'; // Macintosh Croatian case 21010: - return 'UTF-16LE'; // UTF-16 (BIFF8) This isn't correct, but some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE + return 'UTF-16LE'; // UTF-16 (BIFF8) This isn't correct, but some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE case 32768: - return 'MAC'; // Apple Roman + return 'MAC'; // Apple Roman case 32769: - throw new \PhpSpreadsheet\Exception('Code page 32769 not supported.'); // ANSI Latin I (BIFF2-BIFF3) + throw new \PhpSpreadsheet\Exception('Code page 32769 not supported.'); // ANSI Latin I (BIFF2-BIFF3) case 65000: - return 'UTF-7'; // Unicode (UTF-7) + return 'UTF-7'; // Unicode (UTF-7) case 65001: - return 'UTF-8'; // Unicode (UTF-8) + return 'UTF-8'; // Unicode (UTF-8) } throw new \PhpSpreadsheet\Exception('Unknown codepage: ' . $codePage); } diff --git a/src/PhpSpreadsheet/Shared/Date.php b/src/PhpSpreadsheet/Shared/Date.php index 8757e50c..1998c8ac 100644 --- a/src/PhpSpreadsheet/Shared/Date.php +++ b/src/PhpSpreadsheet/Shared/Date.php @@ -29,8 +29,8 @@ namespace PhpSpreadsheet\Shared; class Date { /** constants */ - const CALENDAR_WINDOWS_1900 = 1900; // Base date of 1st Jan 1900 = 1.0 - const CALENDAR_MAC_1904 = 1904; // Base date of 2nd Jan 1904 = 1.0 + const CALENDAR_WINDOWS_1900 = 1900; // Base date of 1st Jan 1900 = 1.0 + const CALENDAR_MAC_1904 = 1904; // Base date of 2nd Jan 1904 = 1.0 /* * Names of the months of the year, indexed by shortname diff --git a/src/PhpSpreadsheet/Shared/Excel5.php b/src/PhpSpreadsheet/Shared/Excel5.php index e8635b12..04c8e48c 100644 --- a/src/PhpSpreadsheet/Shared/Excel5.php +++ b/src/PhpSpreadsheet/Shared/Excel5.php @@ -233,8 +233,8 @@ class Excel5 $y1 = $offsetY; // Initialise end cell to the same as the start cell - $col_end = $col_start; // Col containing lower right corner of object - $row_end = $row_start; // Row containing bottom right corner of object + $col_end = $col_start; // Col containing lower right corner of object + $row_end = $row_start; // Row containing bottom right corner of object // Zero the specified offset if greater than the cell dimensions if ($x1 >= self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start))) { diff --git a/src/PhpSpreadsheet/Shared/Font.php b/src/PhpSpreadsheet/Shared/Font.php index d1cb6fe6..5cb43ee2 100644 --- a/src/PhpSpreadsheet/Shared/Font.php +++ b/src/PhpSpreadsheet/Shared/Font.php @@ -45,8 +45,8 @@ class Font const CHARSET_ANSI_JAPANESE_SHIFTJIS = 0x80; const CHARSET_ANSI_KOREAN_HANGUL = 0x81; const CHARSET_ANSI_KOREAN_JOHAB = 0x82; - const CHARSET_ANSI_CHINESE_SIMIPLIFIED = 0x86; // gb2312 - const CHARSET_ANSI_CHINESE_TRADITIONAL = 0x88; // big5 + const CHARSET_ANSI_CHINESE_SIMIPLIFIED = 0x86; // gb2312 + const CHARSET_ANSI_CHINESE_TRADITIONAL = 0x88; // big5 const CHARSET_ANSI_GREEK = 0xA1; const CHARSET_ANSI_TURKISH = 0xA2; const CHARSET_ANSI_VIETNAMESE = 0xA3; diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS.php b/src/PhpSpreadsheet/Shared/OLE/PPS.php index 4fe28c9b..b2091049 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS.php @@ -184,7 +184,7 @@ class PPS . \PhpSpreadsheet\Shared\OLE::localDateToOLE($this->Time2nd) // 116 . pack('V', isset($this->startBlock) ? $this->startBlock : 0) // 120 . pack('V', $this->Size) // 124 - . pack('V', 0); // 128 + . pack('V', 0); // 128 return $ret; } diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php index 4230489e..eddbcacc 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php @@ -63,11 +63,11 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS // Initial Setting for saving $this->_BIG_BLOCK_SIZE = pow( 2, - (isset($this->_BIG_BLOCK_SIZE))? self::adjust2($this->_BIG_BLOCK_SIZE) : 9 + (isset($this->_BIG_BLOCK_SIZE)) ? self::adjust2($this->_BIG_BLOCK_SIZE) : 9 ); $this->_SMALL_BLOCK_SIZE = pow( 2, - (isset($this->_SMALL_BLOCK_SIZE))? self::adjust2($this->_SMALL_BLOCK_SIZE) : 6 + (isset($this->_SMALL_BLOCK_SIZE)) ? self::adjust2($this->_SMALL_BLOCK_SIZE) : 6 ); if (is_resource($filename)) { @@ -130,21 +130,21 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $raList[$i]->Size = $raList[$i]->getDataLen(); if ($raList[$i]->Size < \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) { $iSBcnt += floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) - + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0); + + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE) ? 1 : 0); } else { $iBBcnt += (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) + - (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0)); + (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE) ? 1 : 0)); } } } $iSmallLen = $iSBcnt * $this->_SMALL_BLOCK_SIZE; $iSlCnt = floor($this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE); - $iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt)? 1:0); + $iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt) ? 1 : 0); $iBBcnt += (floor($iSmallLen / $this->_BIG_BLOCK_SIZE) + - (($iSmallLen % $this->_BIG_BLOCK_SIZE)? 1: 0)); + (($iSmallLen % $this->_BIG_BLOCK_SIZE) ? 1 : 0)); $iCnt = count($raList); $iBdCnt = $this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_PPS_SIZE; - $iPPScnt = (floor($iCnt / $iBdCnt) + (($iCnt % $iBdCnt)? 1: 0)); + $iPPScnt = (floor($iCnt / $iBdCnt) + (($iCnt % $iBdCnt) ? 1 : 0)); return [$iSBDcnt, $iBBcnt, $iPPScnt]; } @@ -160,7 +160,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS { $iWk = log($i2) / log(2); - return ($iWk > floor($iWk))? floor($iWk) + 1:$iWk; + return ($iWk > floor($iWk)) ? floor($iWk) + 1 : $iWk; } /** @@ -181,16 +181,16 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $iBdExL = 0; $iAll = $iBBcnt + $iPPScnt + $iSBDcnt; $iAllW = $iAll; - $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0); - $iBdCnt = floor(($iAll + $iBdCntW) / $iBlCnt) + ((($iAllW + $iBdCntW) % $iBlCnt)? 1: 0); + $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt) ? 1 : 0); + $iBdCnt = floor(($iAll + $iBdCntW) / $iBlCnt) + ((($iAllW + $iBdCntW) % $iBlCnt) ? 1 : 0); // Calculate BD count if ($iBdCnt > $i1stBdL) { while (1) { ++$iBdExL; ++$iAllW; - $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt)? 1: 0); - $iBdCnt = floor(($iAllW + $iBdCntW) / $iBlCnt) + ((($iAllW + $iBdCntW) % $iBlCnt)? 1: 0); + $iBdCntW = floor($iAllW / $iBlCnt) + (($iAllW % $iBlCnt) ? 1 : 0); + $iBdCnt = floor(($iAllW + $iBdCntW) / $iBlCnt) + ((($iAllW + $iBdCntW) % $iBlCnt) ? 1 : 0); if ($iBdCnt <= ($iBdExL * $iBlCnt + $i1stBdL)) { break; } @@ -278,7 +278,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $raList[$i]->startBlock = $iStBlk; $iStBlk += (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) + - (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE)? 1: 0)); + (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE) ? 1 : 0)); } // Close file for each PPS, and unlink it //if (isset($raList[$i]->_PPS_FILE)) { @@ -310,7 +310,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS } if ($raList[$i]->Size < \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) { $iSmbCnt = floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) - + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)? 1: 0); + + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE) ? 1 : 0); // Add to SBD $jB = $iSmbCnt - 1; for ($j = 0; $j < $jB; ++$j) { @@ -384,15 +384,15 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $iBdExL = 0; $iAll = $iBsize + $iPpsCnt + $iSbdSize; $iAllW = $iAll; - $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0); - $iBdCnt = floor(($iAll + $iBdCntW) / $iBbCnt) + ((($iAllW + $iBdCntW) % $iBbCnt)? 1: 0); + $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt) ? 1 : 0); + $iBdCnt = floor(($iAll + $iBdCntW) / $iBbCnt) + ((($iAllW + $iBdCntW) % $iBbCnt) ? 1 : 0); // Calculate BD count if ($iBdCnt > $i1stBdL) { while (1) { ++$iBdExL; ++$iAllW; - $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt)? 1: 0); - $iBdCnt = floor(($iAllW + $iBdCntW) / $iBbCnt) + ((($iAllW + $iBdCntW) % $iBbCnt)? 1: 0); + $iBdCntW = floor($iAllW / $iBbCnt) + (($iAllW % $iBbCnt) ? 1 : 0); + $iBdCnt = floor(($iAllW + $iBdCntW) / $iBbCnt) + ((($iAllW + $iBdCntW) % $iBbCnt) ? 1 : 0); if ($iBdCnt <= ($iBdExL * $iBbCnt + $i1stBdL)) { break; } diff --git a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php index 9c6ab98b..7197907b 100644 --- a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php +++ b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php @@ -2592,7 +2592,7 @@ class PclZip // ----- Set the file properties $p_header['size'] = 0; //$p_header['external'] = 0x41FF0010; // Value for a folder : to be checked - $p_header['external'] = 0x00000010; // Value for a folder : to be checked + $p_header['external'] = 0x00000010; // Value for a folder : to be checked // ----- Call the header generation if (($v_result = $this->privWriteFileHeader($p_header)) != 1) { @@ -4980,7 +4980,7 @@ function PclZipUtilPathReduction($p_dir) if ($v_skip > 0) { --$v_skip; } else { - $v_result = $v_list[$i] . ($i != (sizeof($v_list) - 1)?'/' . $v_result:''); + $v_result = $v_list[$i] . ($i != (sizeof($v_list) - 1) ? '/' . $v_result : ''); } } } diff --git a/src/PhpSpreadsheet/Shared/PasswordHasher.php b/src/PhpSpreadsheet/Shared/PasswordHasher.php index fc75548b..491a6066 100644 --- a/src/PhpSpreadsheet/Shared/PasswordHasher.php +++ b/src/PhpSpreadsheet/Shared/PasswordHasher.php @@ -41,14 +41,14 @@ class PasswordHasher public static function hashPassword($pPassword = '') { $password = 0x0000; - $charPos = 1; // char position + $charPos = 1; // char position // split the plain text password in its component characters $chars = preg_split('//', $pPassword, -1, PREG_SPLIT_NO_EMPTY); foreach ($chars as $char) { - $value = ord($char) << $charPos++; // shifted ASCII value - $rotated_bits = $value >> 15; // rotated bits beyond bit 15 - $value &= 0x7fff; // first 15 bits + $value = ord($char) << $charPos++; // shifted ASCII value + $rotated_bits = $value >> 15; // rotated bits beyond bit 15 + $value &= 0x7fff; // first 15 bits $password ^= ($value | $rotated_bits); } diff --git a/src/PhpSpreadsheet/Style.php b/src/PhpSpreadsheet/Style.php index c651d011..db57e1cf 100644 --- a/src/PhpSpreadsheet/Style.php +++ b/src/PhpSpreadsheet/Style.php @@ -621,7 +621,7 @@ class Style extends Style\Supervisor implements IComparable $this->numberFormat->getHashCode() . $hashConditionals . $this->protection->getHashCode() . - ($this->quotePrefix ? 't' : 'f') . + ($this->quotePrefix ? 't' : 'f') . __CLASS__ ); } diff --git a/src/PhpSpreadsheet/Style/Alignment.php b/src/PhpSpreadsheet/Style/Alignment.php index f632d0e8..be294843 100644 --- a/src/PhpSpreadsheet/Style/Alignment.php +++ b/src/PhpSpreadsheet/Style/Alignment.php @@ -34,14 +34,14 @@ class Alignment extends Supervisor implements \PhpSpreadsheet\IComparable const HORIZONTAL_CENTER_CONTINUOUS = 'centerContinuous'; const HORIZONTAL_JUSTIFY = 'justify'; const HORIZONTAL_FILL = 'fill'; - const HORIZONTAL_DISTRIBUTED = 'distributed'; // Excel2007 only + const HORIZONTAL_DISTRIBUTED = 'distributed'; // Excel2007 only /* Vertical alignment styles */ const VERTICAL_BOTTOM = 'bottom'; const VERTICAL_TOP = 'top'; const VERTICAL_CENTER = 'center'; const VERTICAL_JUSTIFY = 'justify'; - const VERTICAL_DISTRIBUTED = 'distributed'; // Excel2007 only + const VERTICAL_DISTRIBUTED = 'distributed'; // Excel2007 only /* Read order */ const READORDER_CONTEXT = 0; diff --git a/src/PhpSpreadsheet/Style/Color.php b/src/PhpSpreadsheet/Style/Color.php index 7937536b..f042b1b5 100644 --- a/src/PhpSpreadsheet/Style/Color.php +++ b/src/PhpSpreadsheet/Style/Color.php @@ -362,62 +362,62 @@ class Color extends Supervisor implements \PhpSpreadsheet\IComparable // Indexed colors if (is_null(self::$indexedColors)) { self::$indexedColors = [ - 1 => 'FF000000', // System Colour #1 - Black - 2 => 'FFFFFFFF', // System Colour #2 - White - 3 => 'FFFF0000', // System Colour #3 - Red - 4 => 'FF00FF00', // System Colour #4 - Green - 5 => 'FF0000FF', // System Colour #5 - Blue - 6 => 'FFFFFF00', // System Colour #6 - Yellow - 7 => 'FFFF00FF', // System Colour #7- Magenta - 8 => 'FF00FFFF', // System Colour #8- Cyan - 9 => 'FF800000', // Standard Colour #9 - 10 => 'FF008000', // Standard Colour #10 - 11 => 'FF000080', // Standard Colour #11 - 12 => 'FF808000', // Standard Colour #12 - 13 => 'FF800080', // Standard Colour #13 - 14 => 'FF008080', // Standard Colour #14 - 15 => 'FFC0C0C0', // Standard Colour #15 - 16 => 'FF808080', // Standard Colour #16 - 17 => 'FF9999FF', // Chart Fill Colour #17 - 18 => 'FF993366', // Chart Fill Colour #18 - 19 => 'FFFFFFCC', // Chart Fill Colour #19 - 20 => 'FFCCFFFF', // Chart Fill Colour #20 - 21 => 'FF660066', // Chart Fill Colour #21 - 22 => 'FFFF8080', // Chart Fill Colour #22 - 23 => 'FF0066CC', // Chart Fill Colour #23 - 24 => 'FFCCCCFF', // Chart Fill Colour #24 - 25 => 'FF000080', // Chart Line Colour #25 - 26 => 'FFFF00FF', // Chart Line Colour #26 - 27 => 'FFFFFF00', // Chart Line Colour #27 - 28 => 'FF00FFFF', // Chart Line Colour #28 - 29 => 'FF800080', // Chart Line Colour #29 - 30 => 'FF800000', // Chart Line Colour #30 - 31 => 'FF008080', // Chart Line Colour #31 - 32 => 'FF0000FF', // Chart Line Colour #32 - 33 => 'FF00CCFF', // Standard Colour #33 - 34 => 'FFCCFFFF', // Standard Colour #34 - 35 => 'FFCCFFCC', // Standard Colour #35 - 36 => 'FFFFFF99', // Standard Colour #36 - 37 => 'FF99CCFF', // Standard Colour #37 - 38 => 'FFFF99CC', // Standard Colour #38 - 39 => 'FFCC99FF', // Standard Colour #39 - 40 => 'FFFFCC99', // Standard Colour #40 - 41 => 'FF3366FF', // Standard Colour #41 - 42 => 'FF33CCCC', // Standard Colour #42 - 43 => 'FF99CC00', // Standard Colour #43 - 44 => 'FFFFCC00', // Standard Colour #44 - 45 => 'FFFF9900', // Standard Colour #45 - 46 => 'FFFF6600', // Standard Colour #46 - 47 => 'FF666699', // Standard Colour #47 - 48 => 'FF969696', // Standard Colour #48 - 49 => 'FF003366', // Standard Colour #49 - 50 => 'FF339966', // Standard Colour #50 - 51 => 'FF003300', // Standard Colour #51 - 52 => 'FF333300', // Standard Colour #52 - 53 => 'FF993300', // Standard Colour #53 - 54 => 'FF993366', // Standard Colour #54 - 55 => 'FF333399', // Standard Colour #55 - 56 => 'FF333333', // Standard Colour #56 + 1 => 'FF000000', // System Colour #1 - Black + 2 => 'FFFFFFFF', // System Colour #2 - White + 3 => 'FFFF0000', // System Colour #3 - Red + 4 => 'FF00FF00', // System Colour #4 - Green + 5 => 'FF0000FF', // System Colour #5 - Blue + 6 => 'FFFFFF00', // System Colour #6 - Yellow + 7 => 'FFFF00FF', // System Colour #7- Magenta + 8 => 'FF00FFFF', // System Colour #8- Cyan + 9 => 'FF800000', // Standard Colour #9 + 10 => 'FF008000', // Standard Colour #10 + 11 => 'FF000080', // Standard Colour #11 + 12 => 'FF808000', // Standard Colour #12 + 13 => 'FF800080', // Standard Colour #13 + 14 => 'FF008080', // Standard Colour #14 + 15 => 'FFC0C0C0', // Standard Colour #15 + 16 => 'FF808080', // Standard Colour #16 + 17 => 'FF9999FF', // Chart Fill Colour #17 + 18 => 'FF993366', // Chart Fill Colour #18 + 19 => 'FFFFFFCC', // Chart Fill Colour #19 + 20 => 'FFCCFFFF', // Chart Fill Colour #20 + 21 => 'FF660066', // Chart Fill Colour #21 + 22 => 'FFFF8080', // Chart Fill Colour #22 + 23 => 'FF0066CC', // Chart Fill Colour #23 + 24 => 'FFCCCCFF', // Chart Fill Colour #24 + 25 => 'FF000080', // Chart Line Colour #25 + 26 => 'FFFF00FF', // Chart Line Colour #26 + 27 => 'FFFFFF00', // Chart Line Colour #27 + 28 => 'FF00FFFF', // Chart Line Colour #28 + 29 => 'FF800080', // Chart Line Colour #29 + 30 => 'FF800000', // Chart Line Colour #30 + 31 => 'FF008080', // Chart Line Colour #31 + 32 => 'FF0000FF', // Chart Line Colour #32 + 33 => 'FF00CCFF', // Standard Colour #33 + 34 => 'FFCCFFFF', // Standard Colour #34 + 35 => 'FFCCFFCC', // Standard Colour #35 + 36 => 'FFFFFF99', // Standard Colour #36 + 37 => 'FF99CCFF', // Standard Colour #37 + 38 => 'FFFF99CC', // Standard Colour #38 + 39 => 'FFCC99FF', // Standard Colour #39 + 40 => 'FFFFCC99', // Standard Colour #40 + 41 => 'FF3366FF', // Standard Colour #41 + 42 => 'FF33CCCC', // Standard Colour #42 + 43 => 'FF99CC00', // Standard Colour #43 + 44 => 'FFFFCC00', // Standard Colour #44 + 45 => 'FFFF9900', // Standard Colour #45 + 46 => 'FFFF6600', // Standard Colour #46 + 47 => 'FF666699', // Standard Colour #47 + 48 => 'FF969696', // Standard Colour #48 + 49 => 'FF003366', // Standard Colour #49 + 50 => 'FF339966', // Standard Colour #50 + 51 => 'FF003300', // Standard Colour #51 + 52 => 'FF333300', // Standard Colour #52 + 53 => 'FF993300', // Standard Colour #53 + 54 => 'FF993366', // Standard Colour #54 + 55 => 'FF333399', // Standard Colour #55 + 56 => 'FF333333', // Standard Colour #56 ]; } diff --git a/src/PhpSpreadsheet/Style/NumberFormat.php b/src/PhpSpreadsheet/Style/NumberFormat.php index 3588cfc5..1d0fbe23 100644 --- a/src/PhpSpreadsheet/Style/NumberFormat.php +++ b/src/PhpSpreadsheet/Style/NumberFormat.php @@ -286,7 +286,7 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable self::$builtInFormats[11] = '0.00E+00'; self::$builtInFormats[12] = '# ?/?'; self::$builtInFormats[13] = '# ??/??'; - self::$builtInFormats[14] = 'm/d/yyyy'; // Despite ECMA 'mm-dd-yy'; + self::$builtInFormats[14] = 'm/d/yyyy'; // Despite ECMA 'mm-dd-yy'; self::$builtInFormats[15] = 'd-mmm-yy'; self::$builtInFormats[16] = 'd-mmm'; self::$builtInFormats[17] = 'mmm-yy'; @@ -294,17 +294,17 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable self::$builtInFormats[19] = 'h:mm:ss AM/PM'; self::$builtInFormats[20] = 'h:mm'; self::$builtInFormats[21] = 'h:mm:ss'; - self::$builtInFormats[22] = 'm/d/yyyy h:mm'; // Despite ECMA 'm/d/yy h:mm'; + self::$builtInFormats[22] = 'm/d/yyyy h:mm'; // Despite ECMA 'm/d/yy h:mm'; - self::$builtInFormats[37] = '#,##0_);(#,##0)'; // Despite ECMA '#,##0 ;(#,##0)'; - self::$builtInFormats[38] = '#,##0_);[Red](#,##0)'; // Despite ECMA '#,##0 ;[Red](#,##0)'; - self::$builtInFormats[39] = '#,##0.00_);(#,##0.00)'; // Despite ECMA '#,##0.00;(#,##0.00)'; - self::$builtInFormats[40] = '#,##0.00_);[Red](#,##0.00)'; // Despite ECMA '#,##0.00;[Red](#,##0.00)'; + self::$builtInFormats[37] = '#,##0_);(#,##0)'; // Despite ECMA '#,##0 ;(#,##0)'; + self::$builtInFormats[38] = '#,##0_);[Red](#,##0)'; // Despite ECMA '#,##0 ;[Red](#,##0)'; + self::$builtInFormats[39] = '#,##0.00_);(#,##0.00)'; // Despite ECMA '#,##0.00;(#,##0.00)'; + self::$builtInFormats[40] = '#,##0.00_);[Red](#,##0.00)'; // Despite ECMA '#,##0.00;[Red](#,##0.00)'; self::$builtInFormats[44] = '_("$"* #,##0.00_);_("$"* \(#,##0.00\);_("$"* "-"??_);_(@_)'; self::$builtInFormats[45] = 'mm:ss'; self::$builtInFormats[46] = '[h]:mm:ss'; - self::$builtInFormats[47] = 'mm:ss.0'; // Despite ECMA 'mmss.0'; + self::$builtInFormats[47] = 'mm:ss.0'; // Despite ECMA 'mmss.0'; self::$builtInFormats[48] = '##0.0E+0'; self::$builtInFormats[49] = '@'; diff --git a/src/PhpSpreadsheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet.php index c2aff429..9d391ac4 100644 --- a/src/PhpSpreadsheet/Worksheet.php +++ b/src/PhpSpreadsheet/Worksheet.php @@ -2962,7 +2962,7 @@ class Worksheet implements IComparable if ($this->getCodeName() == $pValue) { return $this; } - $pValue = str_replace(' ', '_', $pValue);//Excel does this automatically without flinching, we are doing the same + $pValue = str_replace(' ', '_', $pValue); //Excel does this automatically without flinching, we are doing the same // Syntax check // throw an exception if not valid self::checkSheetCodeName($pValue); @@ -2991,7 +2991,7 @@ class Worksheet implements IComparable } } - $pValue = $pValue . '_' . $i;// ok, we have a valid name + $pValue = $pValue . '_' . $i; // ok, we have a valid name //codeName is'nt used in formula : no need to call for an update //return $this->setTitle($altTitle, $updateFormulaCellReferences); } diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/src/PhpSpreadsheet/Worksheet/AutoFilter.php index 01886612..06382ed9 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -456,7 +456,7 @@ class AutoFilter * @var array */ private static $fromReplace = ['\*', '\?', '~~', '~.*', '~.?']; - private static $toReplace = ['.*', '.', '~', '\*', '\?']; + private static $toReplace = ['.*', '.', '~', '\*', '\?']; /** * Convert a dynamic rule daterange to a custom filter range expression for ease of calculation diff --git a/src/PhpSpreadsheet/Worksheet/BaseDrawing.php b/src/PhpSpreadsheet/Worksheet/BaseDrawing.php index 3a79c1c8..06734b16 100644 --- a/src/PhpSpreadsheet/Worksheet/BaseDrawing.php +++ b/src/PhpSpreadsheet/Worksheet/BaseDrawing.php @@ -137,8 +137,7 @@ class BaseDrawing implements \PhpSpreadsheet\IComparable $this->rotation = 0; $this->shadow = new Drawing\Shadow(); - // Set image index - ++self::$imageCounter; + // Set image index++self::$imageCounter; $this->imageIndex = self::$imageCounter; } diff --git a/src/PhpSpreadsheet/Writer/CSV.php b/src/PhpSpreadsheet/Writer/CSV.php index c3e4152a..c304d564 100644 --- a/src/PhpSpreadsheet/Writer/CSV.php +++ b/src/PhpSpreadsheet/Writer/CSV.php @@ -116,10 +116,10 @@ class CSV extends BaseWriter implements IWriter } if ($this->excelCompatibility) { - $this->setUseBOM(true); // Enforce UTF-8 BOM Header - $this->setIncludeSeparatorLine(true); // Set separator line - $this->setEnclosure('"'); // Set enclosure to " - $this->setDelimiter(';'); // Set delimiter to a semi-colon + $this->setUseBOM(true); // Enforce UTF-8 BOM Header + $this->setIncludeSeparatorLine(true); // Set separator line + $this->setEnclosure('"'); // Set enclosure to " + $this->setDelimiter(';'); // Set delimiter to a semi-colon $this->setLineEnding("\r\n"); } if ($this->useBOM) { diff --git a/src/PhpSpreadsheet/Writer/Excel2007.php b/src/PhpSpreadsheet/Writer/Excel2007.php index be64d163..1008cf09 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007.php +++ b/src/PhpSpreadsheet/Writer/Excel2007.php @@ -139,8 +139,8 @@ class Excel2007 extends BaseWriter implements IWriter $this->writerParts[$writer] = new $class($this); } - $hashTablesArray = ['stylesConditionalHashTable', 'fillHashTable', 'fontHashTable', - 'bordersHashTable', 'numFmtHashTable', 'drawingHashTable', + $hashTablesArray = ['stylesConditionalHashTable', 'fillHashTable', 'fontHashTable', + 'bordersHashTable', 'numFmtHashTable', 'drawingHashTable', 'styleHashTable', ]; @@ -237,7 +237,7 @@ class Excel2007 extends BaseWriter implements IWriter $macrosCode = $this->spreadSheet->getMacrosCode(); if (!is_null($macrosCode)) { // we have the code ? - $objZip->addFromString('xl/vbaProject.bin', $macrosCode);//allways in 'xl', allways named vbaProject.bin + $objZip->addFromString('xl/vbaProject.bin', $macrosCode); //allways in 'xl', allways named vbaProject.bin if ($this->spreadSheet->hasMacrosCertificate()) { //signed macros ? // Yes : add the certificate file and the related rels file @@ -252,7 +252,7 @@ class Excel2007 extends BaseWriter implements IWriter $objZip->addFromString($tmpRibbonTarget, $this->spreadSheet->getRibbonXMLData('data')); if ($this->spreadSheet->hasRibbonBinObjects()) { $tmpRootPath = dirname($tmpRibbonTarget) . '/'; - $ribbonBinObjects = $this->spreadSheet->getRibbonBinObjects('data');//the files to write + $ribbonBinObjects = $this->spreadSheet->getRibbonBinObjects('data'); //the files to write foreach ($ribbonBinObjects as $aPath => $aContent) { $objZip->addFromString($tmpRootPath . $aPath, $aContent); } diff --git a/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php b/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php index 08463c1c..9b34cdc6 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php @@ -157,7 +157,7 @@ class ContentTypes extends WriterPart // we need to write "Extension" but not already write for media content $tabRibbonTypes = array_diff($spreadsheet->getRibbonBinObjects('types'), array_keys($aMediaContentTypes)); foreach ($tabRibbonTypes as $aRibbonType) { - $mimeType = 'image/.' . $aRibbonType;//we wrote $mimeType like customUI Editor + $mimeType = 'image/.' . $aRibbonType; //we wrote $mimeType like customUI Editor $this->writeDefaultContentType($objWriter, $aRibbonType, $mimeType); } } diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Rels.php b/src/PhpSpreadsheet/Writer/Excel2007/Rels.php index 67214d01..03f6b573 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Rels.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Rels.php @@ -166,7 +166,7 @@ class Rels extends WriterPart 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', 'vbaProject.bin' ); - ++$i;//increment i if needed for an another relation + ++$i; //increment i if needed for an another relation } $objWriter->endElement(); diff --git a/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php b/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php index c4651ba5..1c7549b0 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php @@ -40,7 +40,7 @@ class StringTable extends WriterPart // Create string lookup table $aStringTable = []; $cellCollection = null; - $aFlippedStringTable = null; // For faster lookup + $aFlippedStringTable = null; // For faster lookup // Is an existing table given? if (($pExistingTable !== null) && is_array($pExistingTable)) { diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Style.php b/src/PhpSpreadsheet/Writer/Excel2007/Style.php index 868138fc..9db42e6f 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Style.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Style.php @@ -621,7 +621,7 @@ class Style extends WriterPart /** @var \PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if (!array_key_exists($style->getFill()->getHashCode(), $aFills)) { - $aFills[ $style->getFill()->getHashCode() ] = $style->getFill(); + $aFills[$style->getFill()->getHashCode()] = $style->getFill(); } } @@ -644,7 +644,7 @@ class Style extends WriterPart /** @var \PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if (!array_key_exists($style->getFont()->getHashCode(), $aFonts)) { - $aFonts[ $style->getFont()->getHashCode() ] = $style->getFont(); + $aFonts[$style->getFont()->getHashCode()] = $style->getFont(); } } @@ -667,7 +667,7 @@ class Style extends WriterPart /** @var \PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if (!array_key_exists($style->getBorders()->getHashCode(), $aBorders)) { - $aBorders[ $style->getBorders()->getHashCode() ] = $style->getBorders(); + $aBorders[$style->getBorders()->getHashCode()] = $style->getBorders(); } } @@ -690,7 +690,7 @@ class Style extends WriterPart /** @var \PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !array_key_exists($style->getNumberFormat()->getHashCode(), $aNumFmts)) { - $aNumFmts[ $style->getNumberFormat()->getHashCode() ] = $style->getNumberFormat(); + $aNumFmts[$style->getNumberFormat()->getHashCode()] = $style->getNumberFormat(); } } diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php index ea886c21..b4ee976b 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php @@ -566,10 +566,10 @@ class Worksheet extends WriterPart $objWriter->writeAttribute('operator', $dv->getOperator()); } - $objWriter->writeAttribute('allowBlank', ($dv->getAllowBlank() ? '1' : '0')); - $objWriter->writeAttribute('showDropDown', (!$dv->getShowDropDown() ? '1' : '0')); - $objWriter->writeAttribute('showInputMessage', ($dv->getShowInputMessage() ? '1' : '0')); - $objWriter->writeAttribute('showErrorMessage', ($dv->getShowErrorMessage() ? '1' : '0')); + $objWriter->writeAttribute('allowBlank', ($dv->getAllowBlank() ? '1' : '0')); + $objWriter->writeAttribute('showDropDown', (!$dv->getShowDropDown() ? '1' : '0')); + $objWriter->writeAttribute('showInputMessage', ($dv->getShowInputMessage() ? '1' : '0')); + $objWriter->writeAttribute('showErrorMessage', ($dv->getShowErrorMessage() ? '1' : '0')); if ($dv->getErrorTitle() !== '') { $objWriter->writeAttribute('errorTitle', $dv->getErrorTitle()); @@ -707,7 +707,7 @@ class Worksheet extends WriterPart // printOptions $objWriter->startElement('printOptions'); - $objWriter->writeAttribute('gridLines', ($pSheet->getPrintGridlines() ? 'true': 'false')); + $objWriter->writeAttribute('gridLines', ($pSheet->getPrintGridlines() ? 'true' : 'false')); $objWriter->writeAttribute('gridLinesSet', 'true'); if ($pSheet->getPageSetup()->getHorizontalCentered()) { @@ -800,7 +800,7 @@ class Worksheet extends WriterPart // Top 10 Filter Rule $objWriter->writeAttribute('val', $rule->getValue()); $objWriter->writeAttribute('percent', (($rule->getOperator() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) ? '1' : '0')); - $objWriter->writeAttribute('top', (($rule->getGrouping() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) ? '1': '0')); + $objWriter->writeAttribute('top', (($rule->getGrouping() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) ? '1' : '0')); } else { // Filter, DateGroupItem or CustomFilter $objWriter->startElement($rule->getRuleType()); @@ -1079,8 +1079,7 @@ class Worksheet extends WriterPart break; case 'f': // Formula $calculatedValue = ($this->getParentWriter()->getPreCalculateFormulas()) ? - $pCell->getCalculatedValue() : - $cellValue; + $pCell->getCalculatedValue() : $cellValue; if (is_string($calculatedValue)) { $objWriter->writeAttribute('t', 'str'); } diff --git a/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php b/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php index a5230aa2..c04204d9 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php +++ b/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php @@ -110,9 +110,9 @@ class BIFFwriter $teststr = pack('d', 1.2345); $number = pack('C8', 0x8D, 0x97, 0x6E, 0x12, 0x83, 0xC0, 0xF3, 0x3F); if ($number == $teststr) { - $byte_order = 0; // Little Endian + $byte_order = 0; // Little Endian } elseif ($number == strrev($teststr)) { - $byte_order = 1; // Big Endian + $byte_order = 1; // Big Endian } else { // Give up. I'll fix this in a later version. throw new \PhpSpreadsheet\Writer\Exception('Required floating point format not supported on this platform.'); @@ -162,16 +162,16 @@ class BIFFwriter */ protected function storeBof($type) { - $record = 0x0809; // Record identifier (BIFF5-BIFF8) + $record = 0x0809; // Record identifier (BIFF5-BIFF8) $length = 0x0010; // by inspection of real files, MS Office Excel 2007 writes the following $unknown = pack('VV', 0x000100D1, 0x00000406); - $build = 0x0DBB; // Excel 97 - $year = 0x07CC; // Excel 97 + $build = 0x0DBB; // Excel 97 + $year = 0x07CC; // Excel 97 - $version = 0x0600; // BIFF8 + $version = 0x0600; // BIFF8 $header = pack('vv', $record, $length); $data = pack('vvvv', $version, $type, $build, $year); @@ -183,8 +183,8 @@ class BIFFwriter */ protected function storeEof() { - $record = 0x000A; // Record identifier - $length = 0x0000; // Number of bytes to follow + $record = 0x000A; // Record identifier + $length = 0x0000; // Number of bytes to follow $header = pack('vv', $record, $length); $this->append($header); @@ -195,8 +195,8 @@ class BIFFwriter */ public function writeEof() { - $record = 0x000A; // Record identifier - $length = 0x0000; // Number of bytes to follow + $record = 0x000A; // Record identifier + $length = 0x0000; // Number of bytes to follow $header = pack('vv', $record, $length); return $this->writeData($header); @@ -216,13 +216,13 @@ class BIFFwriter private function addContinue($data) { $limit = $this->limit; - $record = 0x003C; // Record identifier + $record = 0x003C; // Record identifier // The first 2080/8224 bytes remain intact. However, we have to change // the length field of the record. $tmp = substr($data, 0, 2) . pack('v', $limit) . substr($data, 4, $limit); - $header = pack('vv', $record, $limit); // Headers for continue records + $header = pack('vv', $record, $limit); // Headers for continue records // Retrieve chunks of 2080/8224 bytes +4 for the header. $data_length = strlen($data); diff --git a/src/PhpSpreadsheet/Writer/Excel5/Parser.php b/src/PhpSpreadsheet/Writer/Excel5/Parser.php index e89da216..133484b0 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Parser.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Parser.php @@ -114,11 +114,11 @@ class Parser public function __construct() { $this->currentCharacter = 0; - $this->currentToken = ''; // The token we are working on. - $this->formula = ''; // The formula to parse. - $this->lookAhead = ''; // The character ahead of the current char. - $this->parseTree = ''; // The parse tree to be generated. - $this->initializeHashes(); // Initialize the hashes: ptg's and function's ptg's + $this->currentToken = ''; // The token we are working on. + $this->formula = ''; // The formula to parse. + $this->lookAhead = ''; // The character ahead of the current char. + $this->parseTree = ''; // The parse tree to be generated. + $this->initializeHashes(); // Initialize the hashes: ptg's and function's ptg's $this->externalSheets = []; $this->references = []; } @@ -242,256 +242,256 @@ class Parser // $this->functions = [ // function ptg args class vol - 'COUNT' => [0, -1, 0, 0], - 'IF' => [1, -1, 1, 0], - 'ISNA' => [2, 1, 1, 0], - 'ISERROR' => [3, 1, 1, 0], - 'SUM' => [4, -1, 0, 0], - 'AVERAGE' => [5, -1, 0, 0], - 'MIN' => [6, -1, 0, 0], - 'MAX' => [7, -1, 0, 0], - 'ROW' => [8, -1, 0, 0], - 'COLUMN' => [9, -1, 0, 0], - 'NA' => [10, 0, 0, 0], - 'NPV' => [11, -1, 1, 0], - 'STDEV' => [12, -1, 0, 0], - 'DOLLAR' => [13, -1, 1, 0], - 'FIXED' => [14, -1, 1, 0], - 'SIN' => [15, 1, 1, 0], - 'COS' => [16, 1, 1, 0], - 'TAN' => [17, 1, 1, 0], - 'ATAN' => [18, 1, 1, 0], - 'PI' => [19, 0, 1, 0], - 'SQRT' => [20, 1, 1, 0], - 'EXP' => [21, 1, 1, 0], - 'LN' => [22, 1, 1, 0], - 'LOG10' => [23, 1, 1, 0], - 'ABS' => [24, 1, 1, 0], - 'INT' => [25, 1, 1, 0], - 'SIGN' => [26, 1, 1, 0], - 'ROUND' => [27, 2, 1, 0], - 'LOOKUP' => [28, -1, 0, 0], - 'INDEX' => [29, -1, 0, 1], - 'REPT' => [30, 2, 1, 0], - 'MID' => [31, 3, 1, 0], - 'LEN' => [32, 1, 1, 0], - 'VALUE' => [33, 1, 1, 0], - 'TRUE' => [34, 0, 1, 0], - 'FALSE' => [35, 0, 1, 0], - 'AND' => [36, -1, 0, 0], - 'OR' => [37, -1, 0, 0], - 'NOT' => [38, 1, 1, 0], - 'MOD' => [39, 2, 1, 0], - 'DCOUNT' => [40, 3, 0, 0], - 'DSUM' => [41, 3, 0, 0], - 'DAVERAGE' => [42, 3, 0, 0], - 'DMIN' => [43, 3, 0, 0], - 'DMAX' => [44, 3, 0, 0], - 'DSTDEV' => [45, 3, 0, 0], - 'VAR' => [46, -1, 0, 0], - 'DVAR' => [47, 3, 0, 0], - 'TEXT' => [48, 2, 1, 0], - 'LINEST' => [49, -1, 0, 0], - 'TREND' => [50, -1, 0, 0], - 'LOGEST' => [51, -1, 0, 0], - 'GROWTH' => [52, -1, 0, 0], - 'PV' => [56, -1, 1, 0], - 'FV' => [57, -1, 1, 0], - 'NPER' => [58, -1, 1, 0], - 'PMT' => [59, -1, 1, 0], - 'RATE' => [60, -1, 1, 0], - 'MIRR' => [61, 3, 0, 0], - 'IRR' => [62, -1, 0, 0], - 'RAND' => [63, 0, 1, 1], - 'MATCH' => [64, -1, 0, 0], - 'DATE' => [65, 3, 1, 0], - 'TIME' => [66, 3, 1, 0], - 'DAY' => [67, 1, 1, 0], - 'MONTH' => [68, 1, 1, 0], - 'YEAR' => [69, 1, 1, 0], - 'WEEKDAY' => [70, -1, 1, 0], - 'HOUR' => [71, 1, 1, 0], - 'MINUTE' => [72, 1, 1, 0], - 'SECOND' => [73, 1, 1, 0], - 'NOW' => [74, 0, 1, 1], - 'AREAS' => [75, 1, 0, 1], - 'ROWS' => [76, 1, 0, 1], - 'COLUMNS' => [77, 1, 0, 1], - 'OFFSET' => [78, -1, 0, 1], - 'SEARCH' => [82, -1, 1, 0], - 'TRANSPOSE' => [83, 1, 1, 0], - 'TYPE' => [86, 1, 1, 0], - 'ATAN2' => [97, 2, 1, 0], - 'ASIN' => [98, 1, 1, 0], - 'ACOS' => [99, 1, 1, 0], - 'CHOOSE' => [100, -1, 1, 0], - 'HLOOKUP' => [101, -1, 0, 0], - 'VLOOKUP' => [102, -1, 0, 0], - 'ISREF' => [105, 1, 0, 0], - 'LOG' => [109, -1, 1, 0], - 'CHAR' => [111, 1, 1, 0], - 'LOWER' => [112, 1, 1, 0], - 'UPPER' => [113, 1, 1, 0], - 'PROPER' => [114, 1, 1, 0], - 'LEFT' => [115, -1, 1, 0], - 'RIGHT' => [116, -1, 1, 0], - 'EXACT' => [117, 2, 1, 0], - 'TRIM' => [118, 1, 1, 0], - 'REPLACE' => [119, 4, 1, 0], - 'SUBSTITUTE' => [120, -1, 1, 0], - 'CODE' => [121, 1, 1, 0], - 'FIND' => [124, -1, 1, 0], - 'CELL' => [125, -1, 0, 1], - 'ISERR' => [126, 1, 1, 0], - 'ISTEXT' => [127, 1, 1, 0], - 'ISNUMBER' => [128, 1, 1, 0], - 'ISBLANK' => [129, 1, 1, 0], - 'T' => [130, 1, 0, 0], - 'N' => [131, 1, 0, 0], - 'DATEVALUE' => [140, 1, 1, 0], - 'TIMEVALUE' => [141, 1, 1, 0], - 'SLN' => [142, 3, 1, 0], - 'SYD' => [143, 4, 1, 0], - 'DDB' => [144, -1, 1, 0], - 'INDIRECT' => [148, -1, 1, 1], - 'CALL' => [150, -1, 1, 0], - 'CLEAN' => [162, 1, 1, 0], - 'MDETERM' => [163, 1, 2, 0], - 'MINVERSE' => [164, 1, 2, 0], - 'MMULT' => [165, 2, 2, 0], - 'IPMT' => [167, -1, 1, 0], - 'PPMT' => [168, -1, 1, 0], - 'COUNTA' => [169, -1, 0, 0], - 'PRODUCT' => [183, -1, 0, 0], - 'FACT' => [184, 1, 1, 0], - 'DPRODUCT' => [189, 3, 0, 0], - 'ISNONTEXT' => [190, 1, 1, 0], - 'STDEVP' => [193, -1, 0, 0], - 'VARP' => [194, -1, 0, 0], - 'DSTDEVP' => [195, 3, 0, 0], - 'DVARP' => [196, 3, 0, 0], - 'TRUNC' => [197, -1, 1, 0], - 'ISLOGICAL' => [198, 1, 1, 0], - 'DCOUNTA' => [199, 3, 0, 0], - 'USDOLLAR' => [204, -1, 1, 0], - 'FINDB' => [205, -1, 1, 0], - 'SEARCHB' => [206, -1, 1, 0], - 'REPLACEB' => [207, 4, 1, 0], - 'LEFTB' => [208, -1, 1, 0], - 'RIGHTB' => [209, -1, 1, 0], - 'MIDB' => [210, 3, 1, 0], - 'LENB' => [211, 1, 1, 0], - 'ROUNDUP' => [212, 2, 1, 0], - 'ROUNDDOWN' => [213, 2, 1, 0], - 'ASC' => [214, 1, 1, 0], - 'DBCS' => [215, 1, 1, 0], - 'RANK' => [216, -1, 0, 0], - 'ADDRESS' => [219, -1, 1, 0], - 'DAYS360' => [220, -1, 1, 0], - 'TODAY' => [221, 0, 1, 1], - 'VDB' => [222, -1, 1, 0], - 'MEDIAN' => [227, -1, 0, 0], - 'SUMPRODUCT' => [228, -1, 2, 0], - 'SINH' => [229, 1, 1, 0], - 'COSH' => [230, 1, 1, 0], - 'TANH' => [231, 1, 1, 0], - 'ASINH' => [232, 1, 1, 0], - 'ACOSH' => [233, 1, 1, 0], - 'ATANH' => [234, 1, 1, 0], - 'DGET' => [235, 3, 0, 0], - 'INFO' => [244, 1, 1, 1], - 'DB' => [247, -1, 1, 0], - 'FREQUENCY' => [252, 2, 0, 0], - 'ERROR.TYPE' => [261, 1, 1, 0], - 'REGISTER.ID' => [267, -1, 1, 0], - 'AVEDEV' => [269, -1, 0, 0], - 'BETADIST' => [270, -1, 1, 0], - 'GAMMALN' => [271, 1, 1, 0], - 'BETAINV' => [272, -1, 1, 0], - 'BINOMDIST' => [273, 4, 1, 0], - 'CHIDIST' => [274, 2, 1, 0], - 'CHIINV' => [275, 2, 1, 0], - 'COMBIN' => [276, 2, 1, 0], - 'CONFIDENCE' => [277, 3, 1, 0], - 'CRITBINOM' => [278, 3, 1, 0], - 'EVEN' => [279, 1, 1, 0], - 'EXPONDIST' => [280, 3, 1, 0], - 'FDIST' => [281, 3, 1, 0], - 'FINV' => [282, 3, 1, 0], - 'FISHER' => [283, 1, 1, 0], - 'FISHERINV' => [284, 1, 1, 0], - 'FLOOR' => [285, 2, 1, 0], - 'GAMMADIST' => [286, 4, 1, 0], - 'GAMMAINV' => [287, 3, 1, 0], - 'CEILING' => [288, 2, 1, 0], - 'HYPGEOMDIST' => [289, 4, 1, 0], - 'LOGNORMDIST' => [290, 3, 1, 0], - 'LOGINV' => [291, 3, 1, 0], - 'NEGBINOMDIST' => [292, 3, 1, 0], - 'NORMDIST' => [293, 4, 1, 0], - 'NORMSDIST' => [294, 1, 1, 0], - 'NORMINV' => [295, 3, 1, 0], - 'NORMSINV' => [296, 1, 1, 0], - 'STANDARDIZE' => [297, 3, 1, 0], - 'ODD' => [298, 1, 1, 0], - 'PERMUT' => [299, 2, 1, 0], - 'POISSON' => [300, 3, 1, 0], - 'TDIST' => [301, 3, 1, 0], - 'WEIBULL' => [302, 4, 1, 0], - 'SUMXMY2' => [303, 2, 2, 0], - 'SUMX2MY2' => [304, 2, 2, 0], - 'SUMX2PY2' => [305, 2, 2, 0], - 'CHITEST' => [306, 2, 2, 0], - 'CORREL' => [307, 2, 2, 0], - 'COVAR' => [308, 2, 2, 0], - 'FORECAST' => [309, 3, 2, 0], - 'FTEST' => [310, 2, 2, 0], - 'INTERCEPT' => [311, 2, 2, 0], - 'PEARSON' => [312, 2, 2, 0], - 'RSQ' => [313, 2, 2, 0], - 'STEYX' => [314, 2, 2, 0], - 'SLOPE' => [315, 2, 2, 0], - 'TTEST' => [316, 4, 2, 0], - 'PROB' => [317, -1, 2, 0], - 'DEVSQ' => [318, -1, 0, 0], - 'GEOMEAN' => [319, -1, 0, 0], - 'HARMEAN' => [320, -1, 0, 0], - 'SUMSQ' => [321, -1, 0, 0], - 'KURT' => [322, -1, 0, 0], - 'SKEW' => [323, -1, 0, 0], - 'ZTEST' => [324, -1, 0, 0], - 'LARGE' => [325, 2, 0, 0], - 'SMALL' => [326, 2, 0, 0], - 'QUARTILE' => [327, 2, 0, 0], - 'PERCENTILE' => [328, 2, 0, 0], - 'PERCENTRANK' => [329, -1, 0, 0], - 'MODE' => [330, -1, 2, 0], - 'TRIMMEAN' => [331, 2, 0, 0], - 'TINV' => [332, 2, 1, 0], - 'CONCATENATE' => [336, -1, 1, 0], - 'POWER' => [337, 2, 1, 0], - 'RADIANS' => [342, 1, 1, 0], - 'DEGREES' => [343, 1, 1, 0], - 'SUBTOTAL' => [344, -1, 0, 0], - 'SUMIF' => [345, -1, 0, 0], - 'COUNTIF' => [346, 2, 0, 0], - 'COUNTBLANK' => [347, 1, 0, 0], - 'ISPMT' => [350, 4, 1, 0], - 'DATEDIF' => [351, 3, 1, 0], - 'DATESTRING' => [352, 1, 1, 0], - 'NUMBERSTRING' => [353, 2, 1, 0], - 'ROMAN' => [354, -1, 1, 0], - 'GETPIVOTDATA' => [358, -1, 0, 0], - 'HYPERLINK' => [359, -1, 1, 0], - 'PHONETIC' => [360, 1, 0, 0], - 'AVERAGEA' => [361, -1, 0, 0], - 'MAXA' => [362, -1, 0, 0], - 'MINA' => [363, -1, 0, 0], - 'STDEVPA' => [364, -1, 0, 0], - 'VARPA' => [365, -1, 0, 0], - 'STDEVA' => [366, -1, 0, 0], - 'VARA' => [367, -1, 0, 0], - 'BAHTTEXT' => [368, 1, 0, 0], + 'COUNT' => [0, -1, 0, 0], + 'IF' => [1, -1, 1, 0], + 'ISNA' => [2, 1, 1, 0], + 'ISERROR' => [3, 1, 1, 0], + 'SUM' => [4, -1, 0, 0], + 'AVERAGE' => [5, -1, 0, 0], + 'MIN' => [6, -1, 0, 0], + 'MAX' => [7, -1, 0, 0], + 'ROW' => [8, -1, 0, 0], + 'COLUMN' => [9, -1, 0, 0], + 'NA' => [10, 0, 0, 0], + 'NPV' => [11, -1, 1, 0], + 'STDEV' => [12, -1, 0, 0], + 'DOLLAR' => [13, -1, 1, 0], + 'FIXED' => [14, -1, 1, 0], + 'SIN' => [15, 1, 1, 0], + 'COS' => [16, 1, 1, 0], + 'TAN' => [17, 1, 1, 0], + 'ATAN' => [18, 1, 1, 0], + 'PI' => [19, 0, 1, 0], + 'SQRT' => [20, 1, 1, 0], + 'EXP' => [21, 1, 1, 0], + 'LN' => [22, 1, 1, 0], + 'LOG10' => [23, 1, 1, 0], + 'ABS' => [24, 1, 1, 0], + 'INT' => [25, 1, 1, 0], + 'SIGN' => [26, 1, 1, 0], + 'ROUND' => [27, 2, 1, 0], + 'LOOKUP' => [28, -1, 0, 0], + 'INDEX' => [29, -1, 0, 1], + 'REPT' => [30, 2, 1, 0], + 'MID' => [31, 3, 1, 0], + 'LEN' => [32, 1, 1, 0], + 'VALUE' => [33, 1, 1, 0], + 'TRUE' => [34, 0, 1, 0], + 'FALSE' => [35, 0, 1, 0], + 'AND' => [36, -1, 0, 0], + 'OR' => [37, -1, 0, 0], + 'NOT' => [38, 1, 1, 0], + 'MOD' => [39, 2, 1, 0], + 'DCOUNT' => [40, 3, 0, 0], + 'DSUM' => [41, 3, 0, 0], + 'DAVERAGE' => [42, 3, 0, 0], + 'DMIN' => [43, 3, 0, 0], + 'DMAX' => [44, 3, 0, 0], + 'DSTDEV' => [45, 3, 0, 0], + 'VAR' => [46, -1, 0, 0], + 'DVAR' => [47, 3, 0, 0], + 'TEXT' => [48, 2, 1, 0], + 'LINEST' => [49, -1, 0, 0], + 'TREND' => [50, -1, 0, 0], + 'LOGEST' => [51, -1, 0, 0], + 'GROWTH' => [52, -1, 0, 0], + 'PV' => [56, -1, 1, 0], + 'FV' => [57, -1, 1, 0], + 'NPER' => [58, -1, 1, 0], + 'PMT' => [59, -1, 1, 0], + 'RATE' => [60, -1, 1, 0], + 'MIRR' => [61, 3, 0, 0], + 'IRR' => [62, -1, 0, 0], + 'RAND' => [63, 0, 1, 1], + 'MATCH' => [64, -1, 0, 0], + 'DATE' => [65, 3, 1, 0], + 'TIME' => [66, 3, 1, 0], + 'DAY' => [67, 1, 1, 0], + 'MONTH' => [68, 1, 1, 0], + 'YEAR' => [69, 1, 1, 0], + 'WEEKDAY' => [70, -1, 1, 0], + 'HOUR' => [71, 1, 1, 0], + 'MINUTE' => [72, 1, 1, 0], + 'SECOND' => [73, 1, 1, 0], + 'NOW' => [74, 0, 1, 1], + 'AREAS' => [75, 1, 0, 1], + 'ROWS' => [76, 1, 0, 1], + 'COLUMNS' => [77, 1, 0, 1], + 'OFFSET' => [78, -1, 0, 1], + 'SEARCH' => [82, -1, 1, 0], + 'TRANSPOSE' => [83, 1, 1, 0], + 'TYPE' => [86, 1, 1, 0], + 'ATAN2' => [97, 2, 1, 0], + 'ASIN' => [98, 1, 1, 0], + 'ACOS' => [99, 1, 1, 0], + 'CHOOSE' => [100, -1, 1, 0], + 'HLOOKUP' => [101, -1, 0, 0], + 'VLOOKUP' => [102, -1, 0, 0], + 'ISREF' => [105, 1, 0, 0], + 'LOG' => [109, -1, 1, 0], + 'CHAR' => [111, 1, 1, 0], + 'LOWER' => [112, 1, 1, 0], + 'UPPER' => [113, 1, 1, 0], + 'PROPER' => [114, 1, 1, 0], + 'LEFT' => [115, -1, 1, 0], + 'RIGHT' => [116, -1, 1, 0], + 'EXACT' => [117, 2, 1, 0], + 'TRIM' => [118, 1, 1, 0], + 'REPLACE' => [119, 4, 1, 0], + 'SUBSTITUTE' => [120, -1, 1, 0], + 'CODE' => [121, 1, 1, 0], + 'FIND' => [124, -1, 1, 0], + 'CELL' => [125, -1, 0, 1], + 'ISERR' => [126, 1, 1, 0], + 'ISTEXT' => [127, 1, 1, 0], + 'ISNUMBER' => [128, 1, 1, 0], + 'ISBLANK' => [129, 1, 1, 0], + 'T' => [130, 1, 0, 0], + 'N' => [131, 1, 0, 0], + 'DATEVALUE' => [140, 1, 1, 0], + 'TIMEVALUE' => [141, 1, 1, 0], + 'SLN' => [142, 3, 1, 0], + 'SYD' => [143, 4, 1, 0], + 'DDB' => [144, -1, 1, 0], + 'INDIRECT' => [148, -1, 1, 1], + 'CALL' => [150, -1, 1, 0], + 'CLEAN' => [162, 1, 1, 0], + 'MDETERM' => [163, 1, 2, 0], + 'MINVERSE' => [164, 1, 2, 0], + 'MMULT' => [165, 2, 2, 0], + 'IPMT' => [167, -1, 1, 0], + 'PPMT' => [168, -1, 1, 0], + 'COUNTA' => [169, -1, 0, 0], + 'PRODUCT' => [183, -1, 0, 0], + 'FACT' => [184, 1, 1, 0], + 'DPRODUCT' => [189, 3, 0, 0], + 'ISNONTEXT' => [190, 1, 1, 0], + 'STDEVP' => [193, -1, 0, 0], + 'VARP' => [194, -1, 0, 0], + 'DSTDEVP' => [195, 3, 0, 0], + 'DVARP' => [196, 3, 0, 0], + 'TRUNC' => [197, -1, 1, 0], + 'ISLOGICAL' => [198, 1, 1, 0], + 'DCOUNTA' => [199, 3, 0, 0], + 'USDOLLAR' => [204, -1, 1, 0], + 'FINDB' => [205, -1, 1, 0], + 'SEARCHB' => [206, -1, 1, 0], + 'REPLACEB' => [207, 4, 1, 0], + 'LEFTB' => [208, -1, 1, 0], + 'RIGHTB' => [209, -1, 1, 0], + 'MIDB' => [210, 3, 1, 0], + 'LENB' => [211, 1, 1, 0], + 'ROUNDUP' => [212, 2, 1, 0], + 'ROUNDDOWN' => [213, 2, 1, 0], + 'ASC' => [214, 1, 1, 0], + 'DBCS' => [215, 1, 1, 0], + 'RANK' => [216, -1, 0, 0], + 'ADDRESS' => [219, -1, 1, 0], + 'DAYS360' => [220, -1, 1, 0], + 'TODAY' => [221, 0, 1, 1], + 'VDB' => [222, -1, 1, 0], + 'MEDIAN' => [227, -1, 0, 0], + 'SUMPRODUCT' => [228, -1, 2, 0], + 'SINH' => [229, 1, 1, 0], + 'COSH' => [230, 1, 1, 0], + 'TANH' => [231, 1, 1, 0], + 'ASINH' => [232, 1, 1, 0], + 'ACOSH' => [233, 1, 1, 0], + 'ATANH' => [234, 1, 1, 0], + 'DGET' => [235, 3, 0, 0], + 'INFO' => [244, 1, 1, 1], + 'DB' => [247, -1, 1, 0], + 'FREQUENCY' => [252, 2, 0, 0], + 'ERROR.TYPE' => [261, 1, 1, 0], + 'REGISTER.ID' => [267, -1, 1, 0], + 'AVEDEV' => [269, -1, 0, 0], + 'BETADIST' => [270, -1, 1, 0], + 'GAMMALN' => [271, 1, 1, 0], + 'BETAINV' => [272, -1, 1, 0], + 'BINOMDIST' => [273, 4, 1, 0], + 'CHIDIST' => [274, 2, 1, 0], + 'CHIINV' => [275, 2, 1, 0], + 'COMBIN' => [276, 2, 1, 0], + 'CONFIDENCE' => [277, 3, 1, 0], + 'CRITBINOM' => [278, 3, 1, 0], + 'EVEN' => [279, 1, 1, 0], + 'EXPONDIST' => [280, 3, 1, 0], + 'FDIST' => [281, 3, 1, 0], + 'FINV' => [282, 3, 1, 0], + 'FISHER' => [283, 1, 1, 0], + 'FISHERINV' => [284, 1, 1, 0], + 'FLOOR' => [285, 2, 1, 0], + 'GAMMADIST' => [286, 4, 1, 0], + 'GAMMAINV' => [287, 3, 1, 0], + 'CEILING' => [288, 2, 1, 0], + 'HYPGEOMDIST' => [289, 4, 1, 0], + 'LOGNORMDIST' => [290, 3, 1, 0], + 'LOGINV' => [291, 3, 1, 0], + 'NEGBINOMDIST' => [292, 3, 1, 0], + 'NORMDIST' => [293, 4, 1, 0], + 'NORMSDIST' => [294, 1, 1, 0], + 'NORMINV' => [295, 3, 1, 0], + 'NORMSINV' => [296, 1, 1, 0], + 'STANDARDIZE' => [297, 3, 1, 0], + 'ODD' => [298, 1, 1, 0], + 'PERMUT' => [299, 2, 1, 0], + 'POISSON' => [300, 3, 1, 0], + 'TDIST' => [301, 3, 1, 0], + 'WEIBULL' => [302, 4, 1, 0], + 'SUMXMY2' => [303, 2, 2, 0], + 'SUMX2MY2' => [304, 2, 2, 0], + 'SUMX2PY2' => [305, 2, 2, 0], + 'CHITEST' => [306, 2, 2, 0], + 'CORREL' => [307, 2, 2, 0], + 'COVAR' => [308, 2, 2, 0], + 'FORECAST' => [309, 3, 2, 0], + 'FTEST' => [310, 2, 2, 0], + 'INTERCEPT' => [311, 2, 2, 0], + 'PEARSON' => [312, 2, 2, 0], + 'RSQ' => [313, 2, 2, 0], + 'STEYX' => [314, 2, 2, 0], + 'SLOPE' => [315, 2, 2, 0], + 'TTEST' => [316, 4, 2, 0], + 'PROB' => [317, -1, 2, 0], + 'DEVSQ' => [318, -1, 0, 0], + 'GEOMEAN' => [319, -1, 0, 0], + 'HARMEAN' => [320, -1, 0, 0], + 'SUMSQ' => [321, -1, 0, 0], + 'KURT' => [322, -1, 0, 0], + 'SKEW' => [323, -1, 0, 0], + 'ZTEST' => [324, -1, 0, 0], + 'LARGE' => [325, 2, 0, 0], + 'SMALL' => [326, 2, 0, 0], + 'QUARTILE' => [327, 2, 0, 0], + 'PERCENTILE' => [328, 2, 0, 0], + 'PERCENTRANK' => [329, -1, 0, 0], + 'MODE' => [330, -1, 2, 0], + 'TRIMMEAN' => [331, 2, 0, 0], + 'TINV' => [332, 2, 1, 0], + 'CONCATENATE' => [336, -1, 1, 0], + 'POWER' => [337, 2, 1, 0], + 'RADIANS' => [342, 1, 1, 0], + 'DEGREES' => [343, 1, 1, 0], + 'SUBTOTAL' => [344, -1, 0, 0], + 'SUMIF' => [345, -1, 0, 0], + 'COUNTIF' => [346, 2, 0, 0], + 'COUNTBLANK' => [347, 1, 0, 0], + 'ISPMT' => [350, 4, 1, 0], + 'DATEDIF' => [351, 3, 1, 0], + 'DATESTRING' => [352, 1, 1, 0], + 'NUMBERSTRING' => [353, 2, 1, 0], + 'ROMAN' => [354, -1, 1, 0], + 'GETPIVOTDATA' => [358, -1, 0, 0], + 'HYPERLINK' => [359, -1, 1, 0], + 'PHONETIC' => [360, 1, 0, 0], + 'AVERAGEA' => [361, -1, 0, 0], + 'MAXA' => [362, -1, 0, 0], + 'MINA' => [363, -1, 0, 0], + 'STDEVPA' => [364, -1, 0, 0], + 'VARPA' => [365, -1, 0, 0], + 'STDEVA' => [366, -1, 0, 0], + 'VARA' => [367, -1, 0, 0], + 'BAHTTEXT' => [368, 1, 0, 0], ]; } @@ -1318,12 +1318,12 @@ class Parser private function fact() { if ($this->currentToken == '(') { - $this->advance(); // eat the "(" + $this->advance(); // eat the "(" $result = $this->parenthesizedExpression(); if ($this->currentToken != ')') { throw new \PhpSpreadsheet\Writer\Exception("')' token expected."); } - $this->advance(); // eat the ")" + $this->advance(); // eat the ")" return $result; } // if it's a reference @@ -1372,7 +1372,7 @@ class Parser // If it's a number or a percent if ($this->lookAhead == '%') { $result = $this->createTree('ptgPercent', $this->currentToken, ''); - $this->advance(); // Skip the percentage operator once we've pre-built that tree + $this->advance(); // Skip the percentage operator once we've pre-built that tree } else { $result = $this->createTree($this->currentToken, '', ''); } @@ -1400,12 +1400,12 @@ class Parser $function = strtoupper($this->currentToken); $result = ''; // initialize result $this->advance(); - $this->advance(); // eat the "(" + $this->advance(); // eat the "(" while ($this->currentToken != ')') { /**/ if ($num_args > 0) { if ($this->currentToken == ',' || $this->currentToken == ';') { - $this->advance(); // eat the "," or ";" + $this->advance(); // eat the "," or ";" } else { throw new \PhpSpreadsheet\Writer\Exception("Syntax error: comma expected in function $function, arg #{$num_args}"); } @@ -1427,7 +1427,7 @@ class Parser } $result = $this->createTree($function, $result, $num_args); - $this->advance(); // eat the ")" + $this->advance(); // eat the ")" return $result; } diff --git a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php index 5e7b2631..c4b10382 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php @@ -219,11 +219,11 @@ class Workbook extends BIFFwriter for ($i = 0; $i < $countSheets; ++$i) { $phpSheet = $spreadsheet->getSheet($i); - $this->parser->setExtSheet($phpSheet->getTitle(), $i); // Register worksheet name with parser + $this->parser->setExtSheet($phpSheet->getTitle(), $i); // Register worksheet name with parser $supbook_index = 0x00; $ref = pack('vvv', $supbook_index, $i, $i); - $this->parser->references[] = $ref; // Register reference with parser + $this->parser->references[] = $ref; // Register reference with parser // Sheet tab colors? if ($phpSheet->isTabColorSet()) { @@ -467,7 +467,7 @@ class Workbook extends BIFFwriter */ private function calcSheetOffsets() { - $boundsheet_length = 10; // fixed length for a BOUNDSHEET record + $boundsheet_length = 10; // fixed length for a BOUNDSHEET record // size of Workbook globals part 1 + 3 $offset = $this->_datasize; @@ -831,7 +831,7 @@ class Workbook extends BIFFwriter $record = 0x0018; // option flags - $options = ($isHidden ? 0x21 : 0x00); + $options = ($isHidden ? 0x21 : 0x00); $extra = pack( 'Cvvvvv', @@ -861,9 +861,9 @@ class Workbook extends BIFFwriter */ private function writeCodepage() { - $record = 0x0042; // Record identifier - $length = 0x0002; // Number of bytes to follow - $cv = $this->codepage; // The code page + $record = 0x0042; // Record identifier + $length = 0x0002; // Number of bytes to follow + $cv = $this->codepage; // The code page $header = pack('vv', $record, $length); $data = pack('v', $cv); @@ -876,24 +876,24 @@ class Workbook extends BIFFwriter */ private function writeWindow1() { - $record = 0x003D; // Record identifier - $length = 0x0012; // Number of bytes to follow + $record = 0x003D; // Record identifier + $length = 0x0012; // Number of bytes to follow - $xWn = 0x0000; // Horizontal position of window - $yWn = 0x0000; // Vertical position of window - $dxWn = 0x25BC; // Width of window - $dyWn = 0x1572; // Height of window + $xWn = 0x0000; // Horizontal position of window + $yWn = 0x0000; // Vertical position of window + $dxWn = 0x25BC; // Width of window + $dyWn = 0x1572; // Height of window - $grbit = 0x0038; // Option flags + $grbit = 0x0038; // Option flags // not supported by PhpSpreadsheet, so there is only one selected sheet, the active - $ctabsel = 1; // Number of workbook tabs selected + $ctabsel = 1; // Number of workbook tabs selected - $wTabRatio = 0x0258; // Tab to scrollbar ratio + $wTabRatio = 0x0258; // Tab to scrollbar ratio // not supported by PhpSpreadsheet, set to 0 - $itabFirst = 0; // 1st displayed worksheet - $itabCur = $this->spreadsheet->getActiveSheetIndex(); // Active worksheet + $itabFirst = 0; // 1st displayed worksheet + $itabCur = $this->spreadsheet->getActiveSheetIndex(); // Active worksheet $header = pack('vv', $record, $length); $data = pack('vvvvvvvvv', $xWn, $yWn, $dxWn, $dyWn, $grbit, $itabCur, $itabFirst, $ctabsel, $wTabRatio); @@ -909,7 +909,7 @@ class Workbook extends BIFFwriter private function writeBoundSheet($sheet, $offset) { $sheetname = $sheet->getTitle(); - $record = 0x0085; // Record identifier + $record = 0x0085; // Record identifier // sheet state switch ($sheet->getSheetState()) { @@ -930,7 +930,7 @@ class Workbook extends BIFFwriter // sheet type $st = 0x00; - $grbit = 0x0000; // Visibility and sheet type + $grbit = 0x0000; // Visibility and sheet type $data = pack('VCC', $offset, $ss, $st); $data .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($sheetname); @@ -945,8 +945,8 @@ class Workbook extends BIFFwriter */ private function writeSupbookInternal() { - $record = 0x01AE; // Record identifier - $length = 0x0004; // Bytes to follow + $record = 0x01AE; // Record identifier + $length = 0x0004; // Bytes to follow $header = pack('vv', $record, $length); $data = pack('vv', $this->spreadsheet->getSheetCount(), 0x0401); @@ -961,10 +961,10 @@ class Workbook extends BIFFwriter private function writeExternalsheetBiff8() { $totalReferences = count($this->parser->references); - $record = 0x0017; // Record identifier - $length = 2 + 6 * $totalReferences; // Number of bytes to follow + $record = 0x0017; // Record identifier + $length = 2 + 6 * $totalReferences; // Number of bytes to follow - $supbook_index = 0; // FIXME: only using internal SUPBOOK record + $supbook_index = 0; // FIXME: only using internal SUPBOOK record $header = pack('vv', $record, $length); $data = pack('v', $totalReferences); for ($i = 0; $i < $totalReferences; ++$i) { @@ -979,12 +979,12 @@ class Workbook extends BIFFwriter */ private function writeStyle() { - $record = 0x0293; // Record identifier - $length = 0x0004; // Bytes to follow + $record = 0x0293; // Record identifier + $length = 0x0004; // Bytes to follow - $ixfe = 0x8000; // Index to cell style XF - $BuiltIn = 0x00; // Built-in style - $iLevel = 0xff; // Outline style level + $ixfe = 0x8000; // Index to cell style XF + $BuiltIn = 0x00; // Built-in style + $iLevel = 0xff; // Outline style level $header = pack('vv', $record, $length); $data = pack('vCC', $ixfe, $BuiltIn, $iLevel); @@ -999,10 +999,10 @@ class Workbook extends BIFFwriter */ private function writeNumberFormat($format, $ifmt) { - $record = 0x041E; // Record identifier + $record = 0x041E; // Record identifier $numberFormatString = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($format); - $length = 2 + strlen($numberFormatString); // Number of bytes to follow + $length = 2 + strlen($numberFormatString); // Number of bytes to follow $header = pack('vv', $record, $length); $data = pack('v', $ifmt) . $numberFormatString; @@ -1014,12 +1014,12 @@ class Workbook extends BIFFwriter */ private function writeDateMode() { - $record = 0x0022; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x0022; // Record identifier + $length = 0x0002; // Bytes to follow $f1904 = (\PhpSpreadsheet\Shared\Date::getExcelCalendar() == \PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904) ? 1 - : 0; // Flag for 1904 date system + : 0; // Flag for 1904 date system $header = pack('vv', $record, $length); $data = pack('v', $f1904); @@ -1040,8 +1040,8 @@ class Workbook extends BIFFwriter */ private function writeExternalCount($cxals) { - $record = 0x0016; // Record identifier - $length = 0x0002; // Number of bytes to follow + $record = 0x0016; // Record identifier + $length = 0x0002; // Number of bytes to follow $header = pack('vv', $record, $length); $data = pack('v', $cxals); @@ -1059,11 +1059,11 @@ class Workbook extends BIFFwriter */ private function writeExternalSheet($sheetname) { - $record = 0x0017; // Record identifier - $length = 0x02 + strlen($sheetname); // Number of bytes to follow + $record = 0x0017; // Record identifier + $length = 0x02 + strlen($sheetname); // Number of bytes to follow - $cch = strlen($sheetname); // Length of sheet name - $rgch = 0x03; // Filename encoding + $cch = strlen($sheetname); // Length of sheet name + $rgch = 0x03; // Filename encoding $header = pack('vv', $record, $length); $data = pack('CC', $cch, $rgch); @@ -1083,20 +1083,20 @@ class Workbook extends BIFFwriter */ private function writeNameShort($index, $type, $rowmin, $rowmax, $colmin, $colmax) { - $record = 0x0018; // Record identifier - $length = 0x0024; // Number of bytes to follow + $record = 0x0018; // Record identifier + $length = 0x0024; // Number of bytes to follow - $grbit = 0x0020; // Option flags - $chKey = 0x00; // Keyboard shortcut - $cch = 0x01; // Length of text name - $cce = 0x0015; // Length of text definition - $ixals = $index + 1; // Sheet index - $itab = $ixals; // Equal to ixals - $cchCustMenu = 0x00; // Length of cust menu text - $cchDescription = 0x00; // Length of description text - $cchHelptopic = 0x00; // Length of help topic text - $cchStatustext = 0x00; // Length of status bar text - $rgch = $type; // Built-in name type + $grbit = 0x0020; // Option flags + $chKey = 0x00; // Keyboard shortcut + $cch = 0x01; // Length of text name + $cce = 0x0015; // Length of text definition + $ixals = $index + 1; // Sheet index + $itab = $ixals; // Equal to ixals + $cchCustMenu = 0x00; // Length of cust menu text + $cchDescription = 0x00; // Length of description text + $cchHelptopic = 0x00; // Length of help topic text + $cchStatustext = 0x00; // Length of status bar text + $rgch = $type; // Built-in name type $unknown03 = 0x3b; $unknown04 = 0xffff - $index; @@ -1147,19 +1147,19 @@ class Workbook extends BIFFwriter */ private function writeNameLong($index, $type, $rowmin, $rowmax, $colmin, $colmax) { - $record = 0x0018; // Record identifier - $length = 0x003d; // Number of bytes to follow - $grbit = 0x0020; // Option flags - $chKey = 0x00; // Keyboard shortcut - $cch = 0x01; // Length of text name - $cce = 0x002e; // Length of text definition - $ixals = $index + 1; // Sheet index - $itab = $ixals; // Equal to ixals - $cchCustMenu = 0x00; // Length of cust menu text - $cchDescription = 0x00; // Length of description text - $cchHelptopic = 0x00; // Length of help topic text - $cchStatustext = 0x00; // Length of status bar text - $rgch = $type; // Built-in name type + $record = 0x0018; // Record identifier + $length = 0x003d; // Number of bytes to follow + $grbit = 0x0020; // Option flags + $chKey = 0x00; // Keyboard shortcut + $cch = 0x01; // Length of text name + $cce = 0x002e; // Length of text definition + $ixals = $index + 1; // Sheet index + $itab = $ixals; // Equal to ixals + $cchCustMenu = 0x00; // Length of cust menu text + $cchDescription = 0x00; // Length of description text + $cchHelptopic = 0x00; // Length of help topic text + $cchStatustext = 0x00; // Length of status bar text + $rgch = $type; // Built-in name type $unknown01 = 0x29; $unknown02 = 0x002b; @@ -1222,8 +1222,8 @@ class Workbook extends BIFFwriter */ private function writeCountry() { - $record = 0x008C; // Record identifier - $length = 4; // Number of bytes to follow + $record = 0x008C; // Record identifier + $length = 4; // Number of bytes to follow $header = pack('vv', $record, $length); /* using the same country code always for simplicity */ @@ -1239,8 +1239,8 @@ class Workbook extends BIFFwriter */ private function writeRecalcId() { - $record = 0x01C1; // Record identifier - $length = 8; // Number of bytes to follow + $record = 0x01C1; // Record identifier + $length = 8; // Number of bytes to follow $header = pack('vv', $record, $length); @@ -1257,10 +1257,10 @@ class Workbook extends BIFFwriter { $aref = $this->palette; - $record = 0x0092; // Record identifier - $length = 2 + 4 * count($aref); // Number of bytes to follow - $ccv = count($aref); // Number of RGB values to follow - $data = ''; // The RGB data + $record = 0x0092; // Record identifier + $length = 2 + 4 * count($aref); // Number of bytes to follow + $ccv = count($aref); // Number of RGB values to follow + $data = ''; // The RGB data // Pack the RGB data foreach ($aref as $color) { diff --git a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php index 645aba5b..b4a48724 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php @@ -542,7 +542,7 @@ class Worksheet extends BIFFwriter } $firstCellCoordinates = \PhpSpreadsheet\Cell::coordinateFromString($firstCell); // e.g. array(0, 1) - $lastCellCoordinates = \PhpSpreadsheet\Cell::coordinateFromString($lastCell); // e.g. array(1, 6) + $lastCellCoordinates = \PhpSpreadsheet\Cell::coordinateFromString($lastCell); // e.g. array(1, 6) return pack('vvvv', $firstCellCoordinates[1] - 1, $lastCellCoordinates[1] - 1, \PhpSpreadsheet\Cell::columnIndexFromString($firstCellCoordinates[0]) - 1, \PhpSpreadsheet\Cell::columnIndexFromString($lastCellCoordinates[0]) - 1); } @@ -616,8 +616,8 @@ class Worksheet extends BIFFwriter */ private function writeNumber($row, $col, $num, $xfIndex) { - $record = 0x0203; // Record identifier - $length = 0x000E; // Number of bytes to follow + $record = 0x0203; // Record identifier + $length = 0x000E; // Number of bytes to follow $header = pack('vv', $record, $length); $data = pack('vvv', $row, $col, $xfIndex); @@ -655,8 +655,8 @@ class Worksheet extends BIFFwriter */ private function writeRichTextString($row, $col, $str, $xfIndex, $arrcRun) { - $record = 0x00FD; // Record identifier - $length = 0x000A; // Bytes to follow + $record = 0x00FD; // Record identifier + $length = 0x000A; // Bytes to follow $str = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($str, $arrcRun); /* check if string is already present */ @@ -687,8 +687,8 @@ class Worksheet extends BIFFwriter private function writeLabel($row, $col, $str, $xfIndex) { $strlen = strlen($str); - $record = 0x0204; // Record identifier - $length = 0x0008 + $strlen; // Bytes to follow + $record = 0x0204; // Record identifier + $length = 0x0008 + $strlen; // Bytes to follow $str_error = 0; @@ -722,8 +722,8 @@ class Worksheet extends BIFFwriter */ private function writeLabelSst($row, $col, $str, $xfIndex) { - $record = 0x00FD; // Record identifier - $length = 0x000A; // Bytes to follow + $record = 0x00FD; // Record identifier + $length = 0x000A; // Bytes to follow $str = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($str); @@ -749,8 +749,8 @@ class Worksheet extends BIFFwriter private function writeNote($row, $col, $note) { $note_length = strlen($note); - $record = 0x001C; // Record identifier - $max_length = 2048; // Maximun length for a NOTE record + $record = 0x001C; // Record identifier + $max_length = 2048; // Maximun length for a NOTE record // Length for this record is no more than 2048 + 6 $length = 0x0006 + min($note_length, 2048); @@ -787,8 +787,8 @@ class Worksheet extends BIFFwriter */ public function writeBlank($row, $col, $xfIndex) { - $record = 0x0201; // Record identifier - $length = 0x0006; // Number of bytes to follow + $record = 0x0201; // Record identifier + $length = 0x0006; // Number of bytes to follow $header = pack('vv', $record, $length); $data = pack('vvv', $row, $col, $xfIndex); @@ -836,7 +836,7 @@ class Worksheet extends BIFFwriter */ private function writeFormula($row, $col, $formula, $xfIndex, $calculatedValue) { - $record = 0x0006; // Record identifier + $record = 0x0006; // Record identifier // Initialize possible additional value for STRING record that should be written after the FORMULA record? $stringValue = null; @@ -871,8 +871,8 @@ class Worksheet extends BIFFwriter $num = pack('d', 0x00); } - $grbit = 0x03; // Option flags - $unknown = 0x0000; // Must be zero + $grbit = 0x03; // Option flags + $unknown = 0x0000; // Must be zero // Strip the '=' or '@' sign at the beginning of the formula string if ($formula{0} == '=') { @@ -889,8 +889,8 @@ class Worksheet extends BIFFwriter $error = $this->parser->parse($formula); $formula = $this->parser->toReversePolish(); - $formlen = strlen($formula); // Length of the binary string - $length = 0x16 + $formlen; // Length of the record data + $formlen = strlen($formula); // Length of the binary string + $length = 0x16 + $formlen; // Length of the record data $header = pack('vv', $record, $length); @@ -917,7 +917,7 @@ class Worksheet extends BIFFwriter */ private function writeStringRecord($stringValue) { - $record = 0x0207; // Record identifier + $record = 0x0207; // Record identifier $data = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($stringValue); $length = strlen($data); @@ -994,8 +994,8 @@ class Worksheet extends BIFFwriter */ public function writeUrlWeb($row1, $col1, $row2, $col2, $url) { - $record = 0x01B8; // Record identifier - $length = 0x00000; // Bytes to follow + $record = 0x01B8; // Record identifier + $length = 0x00000; // Bytes to follow // Pack the undocumented parts of the hyperlink stream $unknown1 = pack('H*', 'D0C9EA79F9BACE118C8200AA004BA90B02000000'); @@ -1039,8 +1039,8 @@ class Worksheet extends BIFFwriter */ public function writeUrlInternal($row1, $col1, $row2, $col2, $url) { - $record = 0x01B8; // Record identifier - $length = 0x00000; // Bytes to follow + $record = 0x01B8; // Record identifier + $length = 0x00000; // Bytes to follow // Strip URL type $url = preg_replace('/^internal:/', '', $url); @@ -1098,8 +1098,8 @@ class Worksheet extends BIFFwriter return; //($this->writeUrlExternal_net($row1, $col1, $row2, $col2, $url, $str, $format)); } - $record = 0x01B8; // Record identifier - $length = 0x00000; // Bytes to follow + $record = 0x01B8; // Record identifier + $length = 0x00000; // Bytes to follow // Strip URL type and change Unix dir separator to Dos style (if needed) // @@ -1158,7 +1158,7 @@ class Worksheet extends BIFFwriter $dir_short_len . $dir_short . $unknown3 . - $stream_len;/*. + $stream_len; /*. $dir_long_len . $unknown4 . $dir_long . @@ -1187,14 +1187,14 @@ class Worksheet extends BIFFwriter */ private function writeRow($row, $height, $xfIndex, $hidden = false, $level = 0) { - $record = 0x0208; // Record identifier - $length = 0x0010; // Number of bytes to follow + $record = 0x0208; // Record identifier + $length = 0x0010; // Number of bytes to follow - $colMic = 0x0000; // First defined column - $colMac = 0x0000; // Last defined column - $irwMac = 0x0000; // Used by Excel to optimise loading - $reserved = 0x0000; // Reserved - $grbit = 0x0000; // Option flags + $colMic = 0x0000; // First defined column + $colMac = 0x0000; // Last defined column + $irwMac = 0x0000; // Used by Excel to optimise loading + $reserved = 0x0000; // Reserved + $grbit = 0x0000; // Option flags $ixfe = $xfIndex; if ($height < 0) { @@ -1203,9 +1203,9 @@ class Worksheet extends BIFFwriter // Use writeRow($row, null, $XF) to set XF format without setting height if ($height != null) { - $miyRw = $height * 20; // row height + $miyRw = $height * 20; // row height } else { - $miyRw = 0xff; // default row height is 256 + $miyRw = 0xff; // default row height is 256 } // Set the options flags. fUnsynced is used to show that the font and row @@ -1250,26 +1250,26 @@ class Worksheet extends BIFFwriter */ private function writeWindow2() { - $record = 0x023E; // Record identifier + $record = 0x023E; // Record identifier $length = 0x0012; - $grbit = 0x00B6; // Option flags - $rwTop = 0x0000; // Top row visible in window - $colLeft = 0x0000; // Leftmost column visible in window + $grbit = 0x00B6; // Option flags + $rwTop = 0x0000; // Top row visible in window + $colLeft = 0x0000; // Leftmost column visible in window // The options flags that comprise $grbit - $fDspFmla = 0; // 0 - bit + $fDspFmla = 0; // 0 - bit $fDspGrid = $this->phpSheet->getShowGridlines() ? 1 : 0; // 1 $fDspRwCol = $this->phpSheet->getShowRowColHeaders() ? 1 : 0; // 2 - $fFrozen = $this->phpSheet->getFreezePane() ? 1 : 0; // 3 - $fDspZeros = 1; // 4 - $fDefaultHdr = 1; // 5 + $fFrozen = $this->phpSheet->getFreezePane() ? 1 : 0; // 3 + $fDspZeros = 1; // 4 + $fDefaultHdr = 1; // 5 $fArabic = $this->phpSheet->getRightToLeft() ? 1 : 0; // 6 - $fDspGuts = $this->outlineOn; // 7 - $fFrozenNoSplit = 0; // 0 - bit + $fDspGuts = $this->outlineOn; // 7 + $fFrozenNoSplit = 0; // 0 - bit // no support in PhpSpreadsheet for selected sheet, therefore sheet is only selected if it is the active sheet $fSelected = ($this->phpSheet === $this->phpSheet->getParent()->getActiveSheet()) ? 1 : 0; - $fPaged = 1; // 2 + $fPaged = 1; // 2 $fPageBreakPreview = $this->phpSheet->getSheetView()->getView() === \PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW; $grbit = $fDspFmla; @@ -1312,8 +1312,8 @@ class Worksheet extends BIFFwriter // convert to twips $defaultRowHeight = (int) 20 * $defaultRowHeight; - $record = 0x0225; // Record identifier - $length = 0x0004; // Number of bytes to follow + $record = 0x0225; // Record identifier + $length = 0x0004; // Number of bytes to follow $header = pack('vv', $record, $length); $data = pack('vv', 1, $defaultRowHeight); @@ -1327,8 +1327,8 @@ class Worksheet extends BIFFwriter { $defaultColWidth = 8; - $record = 0x0055; // Record identifier - $length = 0x0002; // Number of bytes to follow + $record = 0x0055; // Record identifier + $length = 0x0002; // Number of bytes to follow $header = pack('vv', $record, $length); $data = pack('v', $defaultColWidth); @@ -1377,13 +1377,13 @@ class Worksheet extends BIFFwriter } else { $level = 0; } - $record = 0x007D; // Record identifier - $length = 0x000C; // Number of bytes to follow + $record = 0x007D; // Record identifier + $length = 0x000C; // Number of bytes to follow - $coldx *= 256; // Convert to units of 1/256 of a char + $coldx *= 256; // Convert to units of 1/256 of a char $ixfe = $xfIndex; - $reserved = 0x0000; // Reserved + $reserved = 0x0000; // Reserved $level = max(0, min($level, 7)); $grbit |= $level << 8; @@ -1424,20 +1424,20 @@ class Worksheet extends BIFFwriter $rwFirst = min($rwFirst, 65535); $rwLast = min($rwLast, 65535); - $record = 0x001D; // Record identifier - $length = 0x000F; // Number of bytes to follow + $record = 0x001D; // Record identifier + $length = 0x000F; // Number of bytes to follow - $pnn = $this->activePane; // Pane position - $rwAct = $rwFirst; // Active row - $colAct = $colFirst; // Active column - $irefAct = 0; // Active cell ref - $cref = 1; // Number of refs + $pnn = $this->activePane; // Pane position + $rwAct = $rwFirst; // Active row + $colAct = $colFirst; // Active column + $irefAct = 0; // Active cell ref + $cref = 1; // Number of refs if (!isset($rwLast)) { - $rwLast = $rwFirst; // Last row in reference + $rwLast = $rwFirst; // Last row in reference } if (!isset($colLast)) { - $colLast = $colFirst; // Last col in reference + $colLast = $colFirst; // Last col in reference } // Swap last row/col for first row/col as necessary @@ -1621,7 +1621,7 @@ class Worksheet extends BIFFwriter $length = strlen($recordData); - $record = 0x0868; // Record identifier + $record = 0x0868; // Record identifier $header = pack('vv', $record, $length); $this->append($header . $recordData); } @@ -1641,8 +1641,8 @@ class Worksheet extends BIFFwriter */ private function writeExterncount($count) { - $record = 0x0016; // Record identifier - $length = 0x0002; // Number of bytes to follow + $record = 0x0016; // Record identifier + $length = 0x0002; // Number of bytes to follow $header = pack('vv', $record, $length); $data = pack('v', $count); @@ -1659,20 +1659,20 @@ class Worksheet extends BIFFwriter */ private function writeExternsheet($sheetname) { - $record = 0x0017; // Record identifier + $record = 0x0017; // Record identifier // References to the current sheet are encoded differently to references to // external sheets. // if ($this->phpSheet->getTitle() == $sheetname) { $sheetname = ''; - $length = 0x02; // The following 2 bytes - $cch = 1; // The following byte - $rgch = 0x02; // Self reference + $length = 0x02; // The following 2 bytes + $cch = 1; // The following byte + $rgch = 0x02; // Self reference } else { $length = 0x02 + strlen($sheetname); $cch = strlen($sheetname); - $rgch = 0x03; // Reference to a sheet in the current workbook + $rgch = 0x03; // Reference to a sheet in the current workbook } $header = pack('vv', $record, $length); @@ -1707,8 +1707,8 @@ class Worksheet extends BIFFwriter } else { $pnnAct = null; } - $record = 0x0041; // Record identifier - $length = 0x000A; // Number of bytes to follow + $record = 0x0041; // Record identifier + $length = 0x000A; // Number of bytes to follow // Code specific to frozen or thawed panes. if ($this->phpSheet->getFreezePane()) { @@ -1767,38 +1767,38 @@ class Worksheet extends BIFFwriter */ private function writeSetup() { - $record = 0x00A1; // Record identifier - $length = 0x0022; // Number of bytes to follow + $record = 0x00A1; // Record identifier + $length = 0x0022; // Number of bytes to follow - $iPaperSize = $this->phpSheet->getPageSetup()->getPaperSize(); // Paper size + $iPaperSize = $this->phpSheet->getPageSetup()->getPaperSize(); // Paper size $iScale = $this->phpSheet->getPageSetup()->getScale() ? - $this->phpSheet->getPageSetup()->getScale() : 100; // Print scaling factor + $this->phpSheet->getPageSetup()->getScale() : 100; // Print scaling factor - $iPageStart = 0x01; // Starting page number - $iFitWidth = (int) $this->phpSheet->getPageSetup()->getFitToWidth(); // Fit to number of pages wide - $iFitHeight = (int) $this->phpSheet->getPageSetup()->getFitToHeight(); // Fit to number of pages high - $grbit = 0x00; // Option flags - $iRes = 0x0258; // Print resolution - $iVRes = 0x0258; // Vertical print resolution + $iPageStart = 0x01; // Starting page number + $iFitWidth = (int) $this->phpSheet->getPageSetup()->getFitToWidth(); // Fit to number of pages wide + $iFitHeight = (int) $this->phpSheet->getPageSetup()->getFitToHeight(); // Fit to number of pages high + $grbit = 0x00; // Option flags + $iRes = 0x0258; // Print resolution + $iVRes = 0x0258; // Vertical print resolution - $numHdr = $this->phpSheet->getPageMargins()->getHeader(); // Header Margin + $numHdr = $this->phpSheet->getPageMargins()->getHeader(); // Header Margin - $numFtr = $this->phpSheet->getPageMargins()->getFooter(); // Footer Margin - $iCopies = 0x01; // Number of copies + $numFtr = $this->phpSheet->getPageMargins()->getFooter(); // Footer Margin + $iCopies = 0x01; // Number of copies - $fLeftToRight = 0x0; // Print over then down + $fLeftToRight = 0x0; // Print over then down // Page orientation $fLandscape = ($this->phpSheet->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 0x0 : 0x1; - $fNoPls = 0x0; // Setup not read from printer - $fNoColor = 0x0; // Print black and white - $fDraft = 0x0; // Print draft quality - $fNotes = 0x0; // Print notes - $fNoOrient = 0x0; // Orientation not set - $fUsePage = 0x0; // Use custom starting page + $fNoPls = 0x0; // Setup not read from printer + $fNoColor = 0x0; // Print black and white + $fDraft = 0x0; // Print draft quality + $fNotes = 0x0; // Print notes + $fNoOrient = 0x0; // Orientation not set + $fUsePage = 0x0; // Use custom starting page $grbit = $fLeftToRight; $grbit |= $fLandscape << 1; @@ -1828,7 +1828,7 @@ class Worksheet extends BIFFwriter */ private function writeHeader() { - $record = 0x0014; // Record identifier + $record = 0x0014; // Record identifier /* removing for now // need to fix character count (multibyte!) @@ -1852,7 +1852,7 @@ class Worksheet extends BIFFwriter */ private function writeFooter() { - $record = 0x0015; // Record identifier + $record = 0x0015; // Record identifier /* removing for now // need to fix character count (multibyte!) @@ -1876,10 +1876,10 @@ class Worksheet extends BIFFwriter */ private function writeHcenter() { - $record = 0x0083; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x0083; // Record identifier + $length = 0x0002; // Bytes to follow - $fHCenter = $this->phpSheet->getPageSetup()->getHorizontalCentered() ? 1 : 0; // Horizontal centering + $fHCenter = $this->phpSheet->getPageSetup()->getHorizontalCentered() ? 1 : 0; // Horizontal centering $header = pack('vv', $record, $length); $data = pack('v', $fHCenter); @@ -1892,10 +1892,10 @@ class Worksheet extends BIFFwriter */ private function writeVcenter() { - $record = 0x0084; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x0084; // Record identifier + $length = 0x0002; // Bytes to follow - $fVCenter = $this->phpSheet->getPageSetup()->getVerticalCentered() ? 1 : 0; // Horizontal centering + $fVCenter = $this->phpSheet->getPageSetup()->getVerticalCentered() ? 1 : 0; // Horizontal centering $header = pack('vv', $record, $length); $data = pack('v', $fVCenter); @@ -1907,10 +1907,10 @@ class Worksheet extends BIFFwriter */ private function writeMarginLeft() { - $record = 0x0026; // Record identifier - $length = 0x0008; // Bytes to follow + $record = 0x0026; // Record identifier + $length = 0x0008; // Bytes to follow - $margin = $this->phpSheet->getPageMargins()->getLeft(); // Margin in inches + $margin = $this->phpSheet->getPageMargins()->getLeft(); // Margin in inches $header = pack('vv', $record, $length); $data = pack('d', $margin); @@ -1926,10 +1926,10 @@ class Worksheet extends BIFFwriter */ private function writeMarginRight() { - $record = 0x0027; // Record identifier - $length = 0x0008; // Bytes to follow + $record = 0x0027; // Record identifier + $length = 0x0008; // Bytes to follow - $margin = $this->phpSheet->getPageMargins()->getRight(); // Margin in inches + $margin = $this->phpSheet->getPageMargins()->getRight(); // Margin in inches $header = pack('vv', $record, $length); $data = pack('d', $margin); @@ -1945,10 +1945,10 @@ class Worksheet extends BIFFwriter */ private function writeMarginTop() { - $record = 0x0028; // Record identifier - $length = 0x0008; // Bytes to follow + $record = 0x0028; // Record identifier + $length = 0x0008; // Bytes to follow - $margin = $this->phpSheet->getPageMargins()->getTop(); // Margin in inches + $margin = $this->phpSheet->getPageMargins()->getTop(); // Margin in inches $header = pack('vv', $record, $length); $data = pack('d', $margin); @@ -1964,10 +1964,10 @@ class Worksheet extends BIFFwriter */ private function writeMarginBottom() { - $record = 0x0029; // Record identifier - $length = 0x0008; // Bytes to follow + $record = 0x0029; // Record identifier + $length = 0x0008; // Bytes to follow - $margin = $this->phpSheet->getPageMargins()->getBottom(); // Margin in inches + $margin = $this->phpSheet->getPageMargins()->getBottom(); // Margin in inches $header = pack('vv', $record, $length); $data = pack('d', $margin); @@ -1983,10 +1983,10 @@ class Worksheet extends BIFFwriter */ private function writePrintHeaders() { - $record = 0x002a; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x002a; // Record identifier + $length = 0x0002; // Bytes to follow - $fPrintRwCol = $this->_print_headers; // Boolean flag + $fPrintRwCol = $this->_print_headers; // Boolean flag $header = pack('vv', $record, $length); $data = pack('v', $fPrintRwCol); @@ -1999,10 +1999,10 @@ class Worksheet extends BIFFwriter */ private function writePrintGridlines() { - $record = 0x002b; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x002b; // Record identifier + $length = 0x0002; // Bytes to follow - $fPrintGrid = $this->phpSheet->getPrintGridlines() ? 1 : 0; // Boolean flag + $fPrintGrid = $this->phpSheet->getPrintGridlines() ? 1 : 0; // Boolean flag $header = pack('vv', $record, $length); $data = pack('v', $fPrintGrid); @@ -2015,10 +2015,10 @@ class Worksheet extends BIFFwriter */ private function writeGridset() { - $record = 0x0082; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x0082; // Record identifier + $length = 0x0002; // Bytes to follow - $fGridSet = !$this->phpSheet->getPrintGridlines(); // Boolean flag + $fGridSet = !$this->phpSheet->getPrintGridlines(); // Boolean flag $header = pack('vv', $record, $length); $data = pack('v', $fGridSet); @@ -2030,8 +2030,8 @@ class Worksheet extends BIFFwriter */ private function writeAutoFilterInfo() { - $record = 0x009D; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x009D; // Record identifier + $length = 0x0002; // Bytes to follow $rangeBounds = \PhpSpreadsheet\Cell::rangeBoundaries($this->phpSheet->getAutoFilter()->getRange()); $iNumFilters = 1 + $rangeBounds[1][0] - $rangeBounds[0][0]; @@ -2050,11 +2050,11 @@ class Worksheet extends BIFFwriter */ private function writeGuts() { - $record = 0x0080; // Record identifier - $length = 0x0008; // Bytes to follow + $record = 0x0080; // Record identifier + $length = 0x0008; // Bytes to follow - $dxRwGut = 0x0000; // Size of row gutter - $dxColGut = 0x0000; // Size of col gutter + $dxRwGut = 0x0000; // Size of row gutter + $dxColGut = 0x0000; // Size of col gutter // determine maximum row outline level $maxRowOutlineLevel = 0; @@ -2094,15 +2094,15 @@ class Worksheet extends BIFFwriter */ private function writeWsbool() { - $record = 0x0081; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x0081; // Record identifier + $length = 0x0002; // Bytes to follow $grbit = 0x0000; // The only option that is of interest is the flag for fit to page. So we // set all the options in one go. // // Set the option flags - $grbit |= 0x0001; // Auto page breaks visible + $grbit |= 0x0001; // Auto page breaks visible if ($this->outlineStyle) { $grbit |= 0x0020; // Auto outline styles } @@ -2162,9 +2162,9 @@ class Worksheet extends BIFFwriter array_shift($hbreaks); } - $record = 0x001b; // Record identifier - $cbrk = count($hbreaks); // Number of page breaks - $length = 2 + 6 * $cbrk; // Bytes to follow + $record = 0x001b; // Record identifier + $cbrk = count($hbreaks); // Number of page breaks + $length = 2 + 6 * $cbrk; // Bytes to follow $header = pack('vv', $record, $length); $data = pack('v', $cbrk); @@ -2189,9 +2189,9 @@ class Worksheet extends BIFFwriter array_shift($vbreaks); } - $record = 0x001a; // Record identifier - $cbrk = count($vbreaks); // Number of page breaks - $length = 2 + 6 * $cbrk; // Bytes to follow + $record = 0x001a; // Record identifier + $cbrk = count($vbreaks); // Number of page breaks + $length = 2 + 6 * $cbrk; // Bytes to follow $header = pack('vv', $record, $length); $data = pack('v', $cbrk); @@ -2215,10 +2215,10 @@ class Worksheet extends BIFFwriter return; } - $record = 0x0012; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x0012; // Record identifier + $length = 0x0002; // Bytes to follow - $fLock = 1; // Worksheet is protected + $fLock = 1; // Worksheet is protected $header = pack('vv', $record, $length); $data = pack('v', $fLock); @@ -2284,10 +2284,10 @@ class Worksheet extends BIFFwriter return; } - $record = 0x0013; // Record identifier - $length = 0x0002; // Bytes to follow + $record = 0x0013; // Record identifier + $length = 0x0002; // Bytes to follow - $wPassword = hexdec($this->phpSheet->getProtection()->getPassword()); // Encoded password + $wPassword = hexdec($this->phpSheet->getProtection()->getPassword()); // Encoded password $header = pack('vv', $record, $length); $data = pack('v', $wPassword); @@ -2382,8 +2382,8 @@ class Worksheet extends BIFFwriter public function positionImage($col_start, $row_start, $x1, $y1, $width, $height) { // Initialise end cell to the same as the start cell - $col_end = $col_start; // Col containing lower right corner of object - $row_end = $row_start; // Row containing bottom right corner of object + $col_end = $col_start; // Col containing lower right corner of object + $row_end = $row_start; // Row containing bottom right corner of object // Zero the specified offset if greater than the cell dimensions if ($x1 >= \PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start))) { @@ -2448,33 +2448,33 @@ class Worksheet extends BIFFwriter */ private function writeObjPicture($colL, $dxL, $rwT, $dyT, $colR, $dxR, $rwB, $dyB) { - $record = 0x005d; // Record identifier - $length = 0x003c; // Bytes to follow + $record = 0x005d; // Record identifier + $length = 0x003c; // Bytes to follow - $cObj = 0x0001; // Count of objects in file (set to 1) - $OT = 0x0008; // Object type. 8 = Picture - $id = 0x0001; // Object ID - $grbit = 0x0614; // Option flags + $cObj = 0x0001; // Count of objects in file (set to 1) + $OT = 0x0008; // Object type. 8 = Picture + $id = 0x0001; // Object ID + $grbit = 0x0614; // Option flags - $cbMacro = 0x0000; // Length of FMLA structure - $Reserved1 = 0x0000; // Reserved - $Reserved2 = 0x0000; // Reserved + $cbMacro = 0x0000; // Length of FMLA structure + $Reserved1 = 0x0000; // Reserved + $Reserved2 = 0x0000; // Reserved - $icvBack = 0x09; // Background colour - $icvFore = 0x09; // Foreground colour - $fls = 0x00; // Fill pattern - $fAuto = 0x00; // Automatic fill - $icv = 0x08; // Line colour - $lns = 0xff; // Line style - $lnw = 0x01; // Line weight - $fAutoB = 0x00; // Automatic border - $frs = 0x0000; // Frame style - $cf = 0x0009; // Image format, 9 = bitmap - $Reserved3 = 0x0000; // Reserved - $cbPictFmla = 0x0000; // Length of FMLA structure - $Reserved4 = 0x0000; // Reserved - $grbit2 = 0x0001; // Option flags - $Reserved5 = 0x0000; // Reserved + $icvBack = 0x09; // Background colour + $icvFore = 0x09; // Foreground colour + $fls = 0x00; // Fill pattern + $fAuto = 0x00; // Automatic fill + $icv = 0x08; // Line colour + $lns = 0xff; // Line style + $lnw = 0x01; // Line weight + $fAutoB = 0x00; // Automatic border + $frs = 0x0000; // Frame style + $cf = 0x0009; // Image format, 9 = bitmap + $Reserved3 = 0x0000; // Reserved + $cbPictFmla = 0x0000; // Length of FMLA structure + $Reserved4 = 0x0000; // Reserved + $grbit2 = 0x0001; // Option flags + $Reserved5 = 0x0000; // Reserved $header = pack('vv', $record, $length); $data = pack('V', $cObj); @@ -2636,8 +2636,8 @@ class Worksheet extends BIFFwriter return; } - $record = 0x00A0; // Record identifier - $length = 0x0004; // Bytes to follow + $record = 0x00A0; // Record identifier + $length = 0x0004; // Bytes to follow $header = pack('vv', $record, $length); $data = pack('vv', $this->phpSheet->getSheetView()->getZoomScale(), 100); @@ -2682,7 +2682,7 @@ class Worksheet extends BIFFwriter $nm = count($spOffsets) - 1; // number of shapes excluding first shape for ($i = 1; $i <= $nm; ++$i) { // MSODRAWING record - $record = 0x00EC; // Record identifier + $record = 0x00EC; // Record identifier // chunk of Escher stream for one shape $dataChunk = substr($data, $spOffsets[$i - 1], $spOffsets[$i] - $spOffsets[$i - 1]); @@ -2760,20 +2760,20 @@ class Worksheet extends BIFFwriter // Write data validations? if (!empty($dataValidationCollection)) { // DATAVALIDATIONS record - $record = 0x01B2; // Record identifier - $length = 0x0012; // Bytes to follow + $record = 0x01B2; // Record identifier + $length = 0x0012; // Bytes to follow - $grbit = 0x0000; // Prompt box at cell, no cached validity data at DV records - $horPos = 0x00000000; // Horizontal position of prompt box, if fixed position - $verPos = 0x00000000; // Vertical position of prompt box, if fixed position - $objId = 0xFFFFFFFF; // Object identifier of drop down arrow object, or -1 if not visible + $grbit = 0x0000; // Prompt box at cell, no cached validity data at DV records + $horPos = 0x00000000; // Horizontal position of prompt box, if fixed position + $verPos = 0x00000000; // Vertical position of prompt box, if fixed position + $objId = 0xFFFFFFFF; // Object identifier of drop down arrow object, or -1 if not visible $header = pack('vv', $record, $length); $data = pack('vVVVV', $grbit, $horPos, $verPos, $objId, count($dataValidationCollection)); $this->append($header . $data); // DATAVALIDATION records - $record = 0x01BE; // Record identifier + $record = 0x01BE; // Record identifier foreach ($dataValidationCollection as $cellCoordinate => $dataValidation) { // initialize record data @@ -2973,8 +2973,8 @@ class Worksheet extends BIFFwriter */ private function writePageLayoutView() { - $record = 0x088B; // Record identifier - $length = 0x0010; // Bytes to follow + $record = 0x088B; // Record identifier + $length = 0x0010; // Bytes to follow $rt = 0x088B; // 2 $grbitFrt = 0x0000; // 2 @@ -3005,7 +3005,7 @@ class Worksheet extends BIFFwriter */ private function writeCFRule(\PhpSpreadsheet\Style\Conditional $conditional) { - $record = 0x01B1; // Record identifier + $record = 0x01B1; // Record identifier // $type : Type of the CF // $operatorType : Comparison operator @@ -3125,43 +3125,43 @@ class Worksheet extends BIFFwriter } // Alignment $flags = 0; - $flags |= (1 == $bAlignHz ? 0x00000001 : 0); - $flags |= (1 == $bAlignVt ? 0x00000002 : 0); - $flags |= (1 == $bAlignWrapTx ? 0x00000004 : 0); - $flags |= (1 == $bTxRotation ? 0x00000008 : 0); + $flags |= (1 == $bAlignHz ? 0x00000001 : 0); + $flags |= (1 == $bAlignVt ? 0x00000002 : 0); + $flags |= (1 == $bAlignWrapTx ? 0x00000004 : 0); + $flags |= (1 == $bTxRotation ? 0x00000008 : 0); // Justify last line flag - $flags |= (1 == 1 ? 0x00000010 : 0); - $flags |= (1 == $bIndent ? 0x00000020 : 0); - $flags |= (1 == $bShrinkToFit ? 0x00000040 : 0); + $flags |= (1 == 1 ? 0x00000010 : 0); + $flags |= (1 == $bIndent ? 0x00000020 : 0); + $flags |= (1 == $bShrinkToFit ? 0x00000040 : 0); // Default - $flags |= (1 == 1 ? 0x00000080 : 0); + $flags |= (1 == 1 ? 0x00000080 : 0); // Protection - $flags |= (1 == $bProtLocked ? 0x00000100 : 0); - $flags |= (1 == $bProtHidden ? 0x00000200 : 0); + $flags |= (1 == $bProtLocked ? 0x00000100 : 0); + $flags |= (1 == $bProtHidden ? 0x00000200 : 0); // Border - $flags |= (1 == $bBorderLeft ? 0x00000400 : 0); - $flags |= (1 == $bBorderRight ? 0x00000800 : 0); - $flags |= (1 == $bBorderTop ? 0x00001000 : 0); + $flags |= (1 == $bBorderLeft ? 0x00000400 : 0); + $flags |= (1 == $bBorderRight ? 0x00000800 : 0); + $flags |= (1 == $bBorderTop ? 0x00001000 : 0); $flags |= (1 == $bBorderBottom ? 0x00002000 : 0); - $flags |= (1 == 1 ? 0x00004000 : 0); // Top left to Bottom right border - $flags |= (1 == 1 ? 0x00008000 : 0); // Bottom left to Top right border + $flags |= (1 == 1 ? 0x00004000 : 0); // Top left to Bottom right border + $flags |= (1 == 1 ? 0x00008000 : 0); // Bottom left to Top right border // Pattern - $flags |= (1 == $bFillStyle ? 0x00010000 : 0); - $flags |= (1 == $bFillColor ? 0x00020000 : 0); - $flags |= (1 == $bFillColorBg ? 0x00040000 : 0); - $flags |= (1 == 1 ? 0x00380000 : 0); + $flags |= (1 == $bFillStyle ? 0x00010000 : 0); + $flags |= (1 == $bFillColor ? 0x00020000 : 0); + $flags |= (1 == $bFillColorBg ? 0x00040000 : 0); + $flags |= (1 == 1 ? 0x00380000 : 0); // Font - $flags |= (1 == $bFormatFont ? 0x04000000 : 0); + $flags |= (1 == $bFormatFont ? 0x04000000 : 0); // Alignment: - $flags |= (1 == $bFormatAlign ? 0x08000000 : 0); + $flags |= (1 == $bFormatAlign ? 0x08000000 : 0); // Border $flags |= (1 == $bFormatBorder ? 0x10000000 : 0); // Pattern - $flags |= (1 == $bFormatFill ? 0x20000000 : 0); + $flags |= (1 == $bFormatFill ? 0x20000000 : 0); // Protection - $flags |= (1 == $bFormatProt ? 0x40000000 : 0); + $flags |= (1 == $bFormatProt ? 0x40000000 : 0); // Text direction - $flags |= (1 == 0 ? 0x80000000 : 0); + $flags |= (1 == 0 ? 0x80000000 : 0); // Data Blocks if ($bFormatFont == 1) { @@ -3406,11 +3406,11 @@ class Worksheet extends BIFFwriter // Options flags for modified font attributes $optionsFlags = 0; $optionsFlagsBold = ($conditional->getStyle()->getFont()->getBold() == null ? 1 : 0); - $optionsFlags |= (1 == $optionsFlagsBold ? 0x00000002 : 0); - $optionsFlags |= (1 == 1 ? 0x00000008 : 0); - $optionsFlags |= (1 == 1 ? 0x00000010 : 0); - $optionsFlags |= (1 == 0 ? 0x00000020 : 0); - $optionsFlags |= (1 == 1 ? 0x00000080 : 0); + $optionsFlags |= (1 == $optionsFlagsBold ? 0x00000002 : 0); + $optionsFlags |= (1 == 1 ? 0x00000008 : 0); + $optionsFlags |= (1 == 1 ? 0x00000010 : 0); + $optionsFlags |= (1 == 0 ? 0x00000020 : 0); + $optionsFlags |= (1 == 1 ? 0x00000080 : 0); $dataBlockFont .= pack('V', $optionsFlags); // Escapement type $dataBlockFont .= pack('V', $fontEscapement); @@ -3781,10 +3781,10 @@ class Worksheet extends BIFFwriter break; case \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR: $blockFillPatternStyle = 0x00; - break; // does not exist in BIFF8 + break; // does not exist in BIFF8 case \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH: $blockFillPatternStyle = 0x00; - break; // does not exist in BIFF8 + break; // does not exist in BIFF8 default: $blockFillPatternStyle = 0x00; break; @@ -4181,8 +4181,8 @@ class Worksheet extends BIFFwriter */ private function writeCFHeader() { - $record = 0x01B0; // Record identifier - $length = 0x0016; // Bytes to follow + $record = 0x01B0; // Record identifier + $length = 0x0016; // Bytes to follow $numColumnMin = null; $numColumnMax = null; diff --git a/src/PhpSpreadsheet/Writer/Excel5/Xf.php b/src/PhpSpreadsheet/Writer/Excel5/Xf.php index ada7e397..07e2c9e3 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Xf.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Xf.php @@ -167,16 +167,16 @@ class Xf } // Flags to indicate if attributes have been set. - $atr_num = ($this->numberFormatIndex != 0)?1:0; - $atr_fnt = ($this->fontIndex != 0)?1:0; + $atr_num = ($this->numberFormatIndex != 0) ? 1 : 0; + $atr_fnt = ($this->fontIndex != 0) ? 1 : 0; $atr_alc = ((int) $this->_style->getAlignment()->getWrapText()) ? 1 : 0; $atr_bdr = (self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) || self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) || self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()) || - self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()))?1:0; + self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle())) ? 1 : 0; $atr_pat = (($this->foregroundColor != 0x40) || ($this->backgroundColor != 0x41) || - self::mapFillType($this->_style->getFill()->getFillType()))?1:0; + self::mapFillType($this->_style->getFill()->getFillType())) ? 1 : 0; $atr_prot = self::mapLocked($this->_style->getProtection()->getLocked()) | self::mapHidden($this->_style->getProtection()->getHidden()); @@ -197,13 +197,13 @@ class Xf $this->_diag_color = 0; } - $record = 0x00E0; // Record identifier - $length = 0x0014; // Number of bytes to follow + $record = 0x00E0; // Record identifier + $length = 0x0014; // Number of bytes to follow - $ifnt = $this->fontIndex; // Index to FONT record - $ifmt = $this->numberFormatIndex; // Index to FORMAT record + $ifnt = $this->fontIndex; // Index to FONT record + $ifmt = $this->numberFormatIndex; // Index to FORMAT record - $align = $this->mapHAlign($this->_style->getAlignment()->getHorizontal()); // Alignment + $align = $this->mapHAlign($this->_style->getAlignment()->getHorizontal()); // Alignment $align |= (int) $this->_style->getAlignment()->getWrapText() << 3; $align |= self::mapVAlign($this->_style->getAlignment()->getVertical()) << 4; $align |= $this->textJustLast << 7; @@ -215,10 +215,10 @@ class Xf $used_attrib |= $atr_pat << 6; $used_attrib |= $atr_prot << 7; - $icv = $this->foregroundColor; // fg and bg pattern colors + $icv = $this->foregroundColor; // fg and bg pattern colors $icv |= $this->backgroundColor << 7; - $border1 = self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()); // Border line style and color + $border1 = self::mapBorderStyle($this->_style->getBorders()->getLeft()->getBorderStyle()); // Border line style and color $border1 |= self::mapBorderStyle($this->_style->getBorders()->getRight()->getBorderStyle()) << 4; $border1 |= self::mapBorderStyle($this->_style->getBorders()->getTop()->getBorderStyle()) << 8; $border1 |= self::mapBorderStyle($this->_style->getBorders()->getBottom()->getBorderStyle()) << 12; @@ -233,7 +233,7 @@ class Xf $border1 |= $diag_tl_to_rb << 30; $border1 |= $diag_tr_to_lb << 31; - $border2 = $this->topBorderColor; // Border color + $border2 = $this->topBorderColor; // Border color $border2 |= $this->bottomBorderColor << 7; $border2 |= $this->_diag_color << 14; $border2 |= self::mapBorderStyle($this->_style->getBorders()->getDiagonal()->getBorderStyle()) << 21; @@ -413,8 +413,8 @@ class Xf \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTTRELLIS => 0x10, \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125 => 0x11, \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY0625 => 0x12, - \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR => 0x00, // does not exist in BIFF8 - \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH => 0x00, // does not exist in BIFF8 + \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR => 0x00, // does not exist in BIFF8 + \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH => 0x00, // does not exist in BIFF8 ]; /** diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index 9e62f580..57cfb58b 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -666,10 +666,10 @@ class HTML extends BaseWriter implements IWriter if ($drawing->getCoordinates() != $coordinates) { continue; } - ob_start(); // Let's start output buffering. - imagepng($drawing->getImageResource()); // This will normally output the image, but because of ob_start(), it won't. - $contents = ob_get_contents(); // Instead, output above is saved to $contents - ob_end_clean(); // End the output buffer. + ob_start(); // Let's start output buffering. + imagepng($drawing->getImageResource()); // This will normally output the image, but because of ob_start(), it won't. + $contents = ob_get_contents(); // Instead, output above is saved to $contents + ob_end_clean(); // End the output buffer. $dataUri = 'data:image/jpeg;base64,' . base64_encode($contents); @@ -1580,7 +1580,7 @@ class HTML extends BaseWriter implements IWriter if (!in_array($baseCell, $adjustedBaseCells)) { // subtract rowspan by 1 - --$this->isBaseCell[$sheetIndex][ $baseCell[0] ][ $baseCell[1] ]['rowspan']; + --$this->isBaseCell[$sheetIndex][$baseCell[0]][$baseCell[1]]['rowspan']; $adjustedBaseCells[] = $baseCell; } } diff --git a/src/PhpSpreadsheet/Writer/PDF/Core.php b/src/PhpSpreadsheet/Writer/PDF/Core.php index 98c34a07..e983f595 100644 --- a/src/PhpSpreadsheet/Writer/PDF/Core.php +++ b/src/PhpSpreadsheet/Writer/PDF/Core.php @@ -67,72 +67,72 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML * @var array */ protected static $paperSizes = [ - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER => 'LETTER', // (8.5 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_SMALL => 'LETTER', // (8.5 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID => [792.00, 1224.00], // (11 in. by 17 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEDGER => [1224.00, 792.00], // (17 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL => 'LEGAL', // (8.5 in. by 14 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STATEMENT => [396.00, 612.00], // (5.5 in. by 8.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_EXECUTIVE => 'EXECUTIVE', // (7.25 in. by 10.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3 => 'A3', // (297 mm by 420 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4 => 'A4', // (210 mm by 297 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_SMALL => 'A4', // (210 mm by 297 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5 => 'A5', // (148 mm by 210 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4 => 'B4', // (250 mm by 353 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5 => 'B5', // (176 mm by 250 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_FOLIO => 'FOLIO', // (8.5 in. by 13 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_QUARTO => [609.45, 779.53], // (215 mm by 275 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_1 => [720.00, 1008.00], // (10 in. by 14 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_2 => [792.00, 1224.00], // (11 in. by 17 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NOTE => 'LETTER', // (8.5 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO9_ENVELOPE => [279.00, 639.00], // (3.875 in. by 8.875 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO10_ENVELOPE => [297.00, 684.00], // (4.125 in. by 9.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO11_ENVELOPE => [324.00, 747.00], // (4.5 in. by 10.375 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO12_ENVELOPE => [342.00, 792.00], // (4.75 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO14_ENVELOPE => [360.00, 828.00], // (5 in. by 11.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C => [1224.00, 1584.00], // (17 in. by 22 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_D => [1584.00, 2448.00], // (22 in. by 34 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_E => [2448.00, 3168.00], // (34 in. by 44 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_DL_ENVELOPE => [311.81, 623.62], // (110 mm by 220 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C5_ENVELOPE => 'C5', // (162 mm by 229 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C3_ENVELOPE => 'C3', // (324 mm by 458 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C4_ENVELOPE => 'C4', // (229 mm by 324 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C6_ENVELOPE => 'C6', // (114 mm by 162 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C65_ENVELOPE => [323.15, 649.13], // (114 mm by 229 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4_ENVELOPE => 'B4', // (250 mm by 353 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5_ENVELOPE => 'B5', // (176 mm by 250 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B6_ENVELOPE => [498.90, 354.33], // (176 mm by 125 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ITALY_ENVELOPE => [311.81, 651.97], // (110 mm by 230 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_MONARCH_ENVELOPE => [279.00, 540.00], // (3.875 in. by 7.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_6_3_4_ENVELOPE => [261.00, 468.00], // (3.625 in. by 6.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_US_STANDARD_FANFOLD => [1071.00, 792.00], // (14.875 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD => [612.00, 864.00], // (8.5 in. by 12 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD => 'FOLIO', // (8.5 in. by 13 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B4 => 'B4', // (250 mm by 353 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD => [566.93, 419.53], // (200 mm by 148 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_1 => [648.00, 792.00], // (9 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_2 => [720.00, 792.00], // (10 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_3 => [1080.00, 792.00], // (15 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_INVITE_ENVELOPE => [623.62, 623.62], // (220 mm by 220 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER => [667.80, 1080.00], // (9.275 in. by 15 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER => [841.68, 1296.00], // (11.69 in. by 18 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_EXTRA_PAPER => [668.98, 912.76], // (236 mm by 322 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER => [595.80, 792.00], // (8.275 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER => 'A4', // (210 mm by 297 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER => [643.46, 1009.13], // (227 mm by 356 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER => [864.57, 1380.47], // (305 mm by 487 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_PLUS_PAPER => [612.00, 913.68], // (8.5 in. by 12.69 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_PLUS_PAPER => [595.28, 935.43], // (210 mm by 330 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER => 'A5', // (148 mm by 210 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER => [515.91, 728.50], // (182 mm by 257 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_EXTRA_PAPER => [493.23, 666.14], // (174 mm by 235 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER => [569.76, 782.36], // (201 mm by 276 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A2_PAPER => 'A2', // (420 mm by 594 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER => 'A3', // (297 mm by 420 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER => 'LETTER', // (8.5 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_SMALL => 'LETTER', // (8.5 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID => [792.00, 1224.00], // (11 in. by 17 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEDGER => [1224.00, 792.00], // (17 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL => 'LEGAL', // (8.5 in. by 14 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STATEMENT => [396.00, 612.00], // (5.5 in. by 8.5 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_EXECUTIVE => 'EXECUTIVE', // (7.25 in. by 10.5 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3 => 'A3', // (297 mm by 420 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4 => 'A4', // (210 mm by 297 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_SMALL => 'A4', // (210 mm by 297 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5 => 'A5', // (148 mm by 210 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4 => 'B4', // (250 mm by 353 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5 => 'B5', // (176 mm by 250 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_FOLIO => 'FOLIO', // (8.5 in. by 13 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_QUARTO => [609.45, 779.53], // (215 mm by 275 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_1 => [720.00, 1008.00], // (10 in. by 14 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_2 => [792.00, 1224.00], // (11 in. by 17 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NOTE => 'LETTER', // (8.5 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO9_ENVELOPE => [279.00, 639.00], // (3.875 in. by 8.875 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO10_ENVELOPE => [297.00, 684.00], // (4.125 in. by 9.5 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO11_ENVELOPE => [324.00, 747.00], // (4.5 in. by 10.375 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO12_ENVELOPE => [342.00, 792.00], // (4.75 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO14_ENVELOPE => [360.00, 828.00], // (5 in. by 11.5 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C => [1224.00, 1584.00], // (17 in. by 22 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_D => [1584.00, 2448.00], // (22 in. by 34 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_E => [2448.00, 3168.00], // (34 in. by 44 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_DL_ENVELOPE => [311.81, 623.62], // (110 mm by 220 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C5_ENVELOPE => 'C5', // (162 mm by 229 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C3_ENVELOPE => 'C3', // (324 mm by 458 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C4_ENVELOPE => 'C4', // (229 mm by 324 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C6_ENVELOPE => 'C6', // (114 mm by 162 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C65_ENVELOPE => [323.15, 649.13], // (114 mm by 229 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4_ENVELOPE => 'B4', // (250 mm by 353 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5_ENVELOPE => 'B5', // (176 mm by 250 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B6_ENVELOPE => [498.90, 354.33], // (176 mm by 125 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ITALY_ENVELOPE => [311.81, 651.97], // (110 mm by 230 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_MONARCH_ENVELOPE => [279.00, 540.00], // (3.875 in. by 7.5 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_6_3_4_ENVELOPE => [261.00, 468.00], // (3.625 in. by 6.5 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_US_STANDARD_FANFOLD => [1071.00, 792.00], // (14.875 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD => [612.00, 864.00], // (8.5 in. by 12 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD => 'FOLIO', // (8.5 in. by 13 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B4 => 'B4', // (250 mm by 353 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD => [566.93, 419.53], // (200 mm by 148 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_1 => [648.00, 792.00], // (9 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_2 => [720.00, 792.00], // (10 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_3 => [1080.00, 792.00], // (15 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_INVITE_ENVELOPE => [623.62, 623.62], // (220 mm by 220 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER => [667.80, 1080.00], // (9.275 in. by 15 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER => [841.68, 1296.00], // (11.69 in. by 18 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_EXTRA_PAPER => [668.98, 912.76], // (236 mm by 322 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER => [595.80, 792.00], // (8.275 in. by 11 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER => 'A4', // (210 mm by 297 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER => [643.46, 1009.13], // (227 mm by 356 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER => [864.57, 1380.47], // (305 mm by 487 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_PLUS_PAPER => [612.00, 913.68], // (8.5 in. by 12.69 in.) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_PLUS_PAPER => [595.28, 935.43], // (210 mm by 330 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER => 'A5', // (148 mm by 210 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER => [515.91, 728.50], // (182 mm by 257 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_EXTRA_PAPER => [493.23, 666.14], // (174 mm by 235 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER => [569.76, 782.36], // (201 mm by 276 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A2_PAPER => 'A2', // (420 mm by 594 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER => 'A3', // (297 mm by 420 mm) + \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) ]; /** diff --git a/src/PhpSpreadsheet/Writer/PDF/DomPDF.php b/src/PhpSpreadsheet/Writer/PDF/DomPDF.php index 302e97f4..23c03b76 100644 --- a/src/PhpSpreadsheet/Writer/PDF/DomPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/DomPDF.php @@ -55,7 +55,7 @@ class DomPDF extends Core implements \PhpSpreadsheet\Writer\IWriter $fileHandle = parent::prepareForSave($pFilename); // Default PDF paper size - $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) + $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { diff --git a/src/PhpSpreadsheet/Writer/PDF/MPDF.php b/src/PhpSpreadsheet/Writer/PDF/MPDF.php index a3c503c6..a7fbd337 100644 --- a/src/PhpSpreadsheet/Writer/PDF/MPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/MPDF.php @@ -55,7 +55,7 @@ class MPDF extends Core implements \PhpSpreadsheet\Writer\IWriter $fileHandle = parent::prepareForSave($pFilename); // Default PDF paper size - $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) + $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { diff --git a/src/PhpSpreadsheet/Writer/PDF/TcPDF.php b/src/PhpSpreadsheet/Writer/PDF/TcPDF.php index d88d9077..84cf48f0 100644 --- a/src/PhpSpreadsheet/Writer/PDF/TcPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/TcPDF.php @@ -56,7 +56,7 @@ class TcPDF extends Core implements \PhpSpreadsheet\Writer\IWriter $fileHandle = parent::prepareForSave($pFilename); // Default PDF paper size - $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) + $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.) // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { diff --git a/tests/data/Shared/Date/DateTimeToExcel.php b/tests/data/Shared/Date/DateTimeToExcel.php index 3135f68c..0ed2f682 100644 --- a/tests/data/Shared/Date/DateTimeToExcel.php +++ b/tests/data/Shared/Date/DateTimeToExcel.php @@ -2,19 +2,19 @@ // DateTime object Result Comments return [ - [new DateTime('1900-01-01'), 1.0], // Excel 1900 base calendar date - [new DateTime('1900-02-28'), 59.0], // This and next test show gap for the mythical - [new DateTime('1900-03-01'), 61.0], // MS Excel 1900 Leap Year - [new DateTime('1901-12-14'), 714.0], // Unix Timestamp 32-bit Earliest Date - [new DateTime('1903-12-31'), 1461.0], - [new DateTime('1904-01-01'), 1462.0], // Excel 1904 Calendar Base Date - [new DateTime('1904-01-02'), 1463.0], - [new DateTime('1960-12-19'), 22269.0], - [new DateTime('1970-01-01'), 25569.0], // Unix Timestamp Base Date - [new DateTime('1982-12-07'), 30292.0], - [new DateTime('2008-06-12'), 39611.0], - [new DateTime('2038-01-19'), 50424.0], // Unix Timestamp 32-bit Latest Date - [new DateTime('1903-05-18 13:37:46'), 1234.56789], - [new DateTime('1933-10-18 16:17:37'), 12345.6789], - [new DateTime('2099-12-31'), 73050.0], + [new DateTime('1900-01-01'), 1.0], // Excel 1900 base calendar date + [new DateTime('1900-02-28'), 59.0], // This and next test show gap for the mythical + [new DateTime('1900-03-01'), 61.0], // MS Excel 1900 Leap Year + [new DateTime('1901-12-14'), 714.0], // Unix Timestamp 32-bit Earliest Date + [new DateTime('1903-12-31'), 1461.0], + [new DateTime('1904-01-01'), 1462.0], // Excel 1904 Calendar Base Date + [new DateTime('1904-01-02'), 1463.0], + [new DateTime('1960-12-19'), 22269.0], + [new DateTime('1970-01-01'), 25569.0], // Unix Timestamp Base Date + [new DateTime('1982-12-07'), 30292.0], + [new DateTime('2008-06-12'), 39611.0], + [new DateTime('2038-01-19'), 50424.0], // Unix Timestamp 32-bit Latest Date + [new DateTime('1903-05-18 13:37:46'), 1234.56789], + [new DateTime('1933-10-18 16:17:37'), 12345.6789], + [new DateTime('2099-12-31'), 73050.0], ]; diff --git a/tests/data/Shared/Date/ExcelToTimestamp1900.php b/tests/data/Shared/Date/ExcelToTimestamp1900.php index febeb12d..b7f85f35 100644 --- a/tests/data/Shared/Date/ExcelToTimestamp1900.php +++ b/tests/data/Shared/Date/ExcelToTimestamp1900.php @@ -2,18 +2,18 @@ // Excel DateTimeStamp Result Comments return [ - [714, -2147472000], // PHP 32-bit Earliest Date 14-Dec-1901 - [1461, -2082931200], // 31-Dec-1903 - [1462, -2082844800], // Excel 1904 Calendar Base Date 01-Jan-1904 - [1463, -2082758400], // 02-Jan-1904 - [22269, -285120000], // 19-Dec-1960 - [25569, 0], // PHP Base Date 01-Jan-1970 - [30292, 408067200], // 07-Dec-1982 - [39611, 1213228800], // 12-Jun-2008 - [50424, 2147472000], // PHP 32-bit Latest Date 19-Jan-2038 - [1234.56789, -2102494934], // 18-May-1903 13:37:46 - [12345.6789, -1142494943], // 18-Oct-1933 16:17:37 - [0.5, 43200], // 12:00:00 - [0.75, 64800], // 18:00.00 - [0.12345, 10666], // 02:57:46 + [714, -2147472000], // PHP 32-bit Earliest Date 14-Dec-1901 + [1461, -2082931200], // 31-Dec-1903 + [1462, -2082844800], // Excel 1904 Calendar Base Date 01-Jan-1904 + [1463, -2082758400], // 02-Jan-1904 + [22269, -285120000], // 19-Dec-1960 + [25569, 0], // PHP Base Date 01-Jan-1970 + [30292, 408067200], // 07-Dec-1982 + [39611, 1213228800], // 12-Jun-2008 + [50424, 2147472000], // PHP 32-bit Latest Date 19-Jan-2038 + [1234.56789, -2102494934], // 18-May-1903 13:37:46 + [12345.6789, -1142494943], // 18-Oct-1933 16:17:37 + [0.5, 43200], // 12:00:00 + [0.75, 64800], // 18:00.00 + [0.12345, 10666], // 02:57:46 ]; diff --git a/tests/data/Shared/Date/ExcelToTimestamp1900Timezone.php b/tests/data/Shared/Date/ExcelToTimestamp1900Timezone.php index a170ecba..1bafd5a7 100644 --- a/tests/data/Shared/Date/ExcelToTimestamp1900Timezone.php +++ b/tests/data/Shared/Date/ExcelToTimestamp1900Timezone.php @@ -2,26 +2,26 @@ // Excel DateTimeStamp Timezone Result Comments return [ - [22269, 'America/New_York', -285102000], // 19-Dec-1960 00:00:00 EST => 19-Dec-1960 05:00:00 UTC - [25569, 'America/New_York', 18000], // 01-Jan-1970 00:00:00 EST => 01-Jan-1970 05:00:00 UTC PHP Base Date - [30292, 'America/New_York', 408085200], // 07-Dec-1982 00:00:00 EST => 07-Dec-1982 05:00:00 UTC - [39611, 'America/New_York', 1213243200], // 12-Jun-2008 00:00:00 EDT => 12-Jun-2008 04:00:00 UTC - [50424, 'America/New_York', 2147490000], // 19-Jan-2038 00:00:00 EST => 19-Jan-2038 05:00:00 UTC PHP 32-bit Latest Date - [22345.56789, 'America/New_York', -278486534], // 05-Mar-1961 13:37:46 EST => 05-Mar-1961 18:37:46 UTC - [22345.6789, 'America/New_York', -278476943], // 05-Mar-1961 16:17:37 EST => 05-Mar-1961 21:17:37 UTC - [0.5, 'America/New_York', 61200], // 12:00:00 EST => 17:00:00 UTC - [0.75, 'America/New_York', 82800], // 18:00.00 EST => 23:00:00 UTC - [0.12345, 'America/New_York', 28666], // 02:57:46 EST => 07:57:46 UTC - [41215, 'America/New_York', 1351828800], // 02-Nov-2012 00:00:00 EDT => 02-Nov-2012 04:00:00 UTC - [22269, 'Pacific/Auckland', -285163200], // 19-Dec-1960 00:00:00 NZST => 18-Dec-1960 12:00:00 UTC - [25569, 'Pacific/Auckland', -43200], // 01-Jan-1970 00:00:00 NZST => 31-Dec-1969 12:00:00 UTC PHP Base Date - [30292, 'Pacific/Auckland', 408020400], // 07-Dec-1982 00:00:00 NZDT => 06-Dec-1982 11:00:00 UTC - [39611, 'Pacific/Auckland', 1213185600], // 12-Jun-2008 00:00:00 NZST => 11-Jun-2008 12:00:00 UTC - [50423.5, 'Pacific/Auckland', 2147382000], // 18-Jan-2038 12:00:00 NZDT => 17-Jan-2038 23:00:00 UTC PHP 32-bit Latest Date - [22345.56789, 'Pacific/Auckland', -278547734], // 05-Mar-1961 13:37:46 NZST => 05-Mar-1961 01:37:46 UTC - [22345.6789, 'Pacific/Auckland', -278538143], // 05-Mar-1961 16:17:37 NZST => 05-Mar-1961 04:17:37 UTC - [0.5, 'Pacific/Auckland', 0], // 12:00:00 NZST => 00:00:00 UTC - [0.75, 'Pacific/Auckland', 21600], // 18:00.00 NZST => 06:00:00 UTC - [0.12345, 'Pacific/Auckland', -32534], // 02:57:46 NZST => 14:57:46 UTC - [41215, 'Pacific/Auckland', 1351767600], // 02-Nov-2012 00:00:00 NZDT => 01-Nov-2012 11:00:00 UTC + [22269, 'America/New_York', -285102000], // 19-Dec-1960 00:00:00 EST => 19-Dec-1960 05:00:00 UTC + [25569, 'America/New_York', 18000], // 01-Jan-1970 00:00:00 EST => 01-Jan-1970 05:00:00 UTC PHP Base Date + [30292, 'America/New_York', 408085200], // 07-Dec-1982 00:00:00 EST => 07-Dec-1982 05:00:00 UTC + [39611, 'America/New_York', 1213243200], // 12-Jun-2008 00:00:00 EDT => 12-Jun-2008 04:00:00 UTC + [50424, 'America/New_York', 2147490000], // 19-Jan-2038 00:00:00 EST => 19-Jan-2038 05:00:00 UTC PHP 32-bit Latest Date + [22345.56789, 'America/New_York', -278486534], // 05-Mar-1961 13:37:46 EST => 05-Mar-1961 18:37:46 UTC + [22345.6789, 'America/New_York', -278476943], // 05-Mar-1961 16:17:37 EST => 05-Mar-1961 21:17:37 UTC + [0.5, 'America/New_York', 61200], // 12:00:00 EST => 17:00:00 UTC + [0.75, 'America/New_York', 82800], // 18:00.00 EST => 23:00:00 UTC + [0.12345, 'America/New_York', 28666], // 02:57:46 EST => 07:57:46 UTC + [41215, 'America/New_York', 1351828800], // 02-Nov-2012 00:00:00 EDT => 02-Nov-2012 04:00:00 UTC + [22269, 'Pacific/Auckland', -285163200], // 19-Dec-1960 00:00:00 NZST => 18-Dec-1960 12:00:00 UTC + [25569, 'Pacific/Auckland', -43200], // 01-Jan-1970 00:00:00 NZST => 31-Dec-1969 12:00:00 UTC PHP Base Date + [30292, 'Pacific/Auckland', 408020400], // 07-Dec-1982 00:00:00 NZDT => 06-Dec-1982 11:00:00 UTC + [39611, 'Pacific/Auckland', 1213185600], // 12-Jun-2008 00:00:00 NZST => 11-Jun-2008 12:00:00 UTC + [50423.5, 'Pacific/Auckland', 2147382000], // 18-Jan-2038 12:00:00 NZDT => 17-Jan-2038 23:00:00 UTC PHP 32-bit Latest Date + [22345.56789, 'Pacific/Auckland', -278547734], // 05-Mar-1961 13:37:46 NZST => 05-Mar-1961 01:37:46 UTC + [22345.6789, 'Pacific/Auckland', -278538143], // 05-Mar-1961 16:17:37 NZST => 05-Mar-1961 04:17:37 UTC + [0.5, 'Pacific/Auckland', 0], // 12:00:00 NZST => 00:00:00 UTC + [0.75, 'Pacific/Auckland', 21600], // 18:00.00 NZST => 06:00:00 UTC + [0.12345, 'Pacific/Auckland', -32534], // 02:57:46 NZST => 14:57:46 UTC + [41215, 'Pacific/Auckland', 1351767600], // 02-Nov-2012 00:00:00 NZDT => 01-Nov-2012 11:00:00 UTC ]; diff --git a/tests/data/Shared/Date/ExcelToTimestamp1904.php b/tests/data/Shared/Date/ExcelToTimestamp1904.php index c7967ba2..30ef1ae9 100644 --- a/tests/data/Shared/Date/ExcelToTimestamp1904.php +++ b/tests/data/Shared/Date/ExcelToTimestamp1904.php @@ -2,13 +2,13 @@ // Excel DateTimeStamp Result Comments return [ - [1462, -1956528000], - [1463, -1956441600], - [22269, -158803200], - [25569, 126316800], - [30292, 534384000], - [39611, 1339545600], - [0.25, 21600], // 06:00:00 - [0.3333333333333333333, 28800], // 08:00.00 - [0.54321, 46933], // 02:57:46 + [1462, -1956528000], + [1463, -1956441600], + [22269, -158803200], + [25569, 126316800], + [30292, 534384000], + [39611, 1339545600], + [0.25, 21600], // 06:00:00 + [0.3333333333333333333, 28800], // 08:00.00 + [0.54321, 46933], // 02:57:46 ]; diff --git a/tests/data/Shared/Date/FormatCodes.php b/tests/data/Shared/Date/FormatCodes.php index 69252ec1..f6108228 100644 --- a/tests/data/Shared/Date/FormatCodes.php +++ b/tests/data/Shared/Date/FormatCodes.php @@ -2,40 +2,40 @@ // Excel Format Code Result return [ - ['General', false], - ['@', false], - ['0', false], - ['0.00', false], - ['#,##0.00', false], - ['#,##0.00_-', false], - ['0%', false], - ['0.00%', false], - ['yyyy-mm-dd', true], - ['yy-mm-dd', true], - ['dd/mm/yy', true], - ['d/m/y', true], - ['d-m-y', true], - ['d-m', true], - ['m-y', true], - ['mm-dd-yy', true], - ['d-mmm-yy', true], - ['d-mmm', true], - ['mmm-yy', true], - ['m/d/yy h:mm', true], - ['d/m/y h:mm', true], - ['h:mm AM/PM', true], - ['h:mm:ss AM/PM', true], - ['h:mm', true], - ['h:mm:ss', true], - ['mm:ss', true], - ['h:mm:ss', true], - ['i:s.S', true], - ['h:mm:ss;@', true], - ['yy/mm/dd;@', true], - ['"$" #,##0.00_-', false], - ['$#,##0_-', false], - ['[$EUR ]#,##0.00_-', false], - ['_[$EUR ]#,##0.00_-', false], - ['[Green]#,##0.00;[Red]#,##0.00_-', false], - ['#,##0.00 "dollars"', false], + ['General', false], + ['@', false], + ['0', false], + ['0.00', false], + ['#,##0.00', false], + ['#,##0.00_-', false], + ['0%', false], + ['0.00%', false], + ['yyyy-mm-dd', true], + ['yy-mm-dd', true], + ['dd/mm/yy', true], + ['d/m/y', true], + ['d-m-y', true], + ['d-m', true], + ['m-y', true], + ['mm-dd-yy', true], + ['d-mmm-yy', true], + ['d-mmm', true], + ['mmm-yy', true], + ['m/d/yy h:mm', true], + ['d/m/y h:mm', true], + ['h:mm AM/PM', true], + ['h:mm:ss AM/PM', true], + ['h:mm', true], + ['h:mm:ss', true], + ['mm:ss', true], + ['h:mm:ss', true], + ['i:s.S', true], + ['h:mm:ss;@', true], + ['yy/mm/dd;@', true], + ['"$" #,##0.00_-', false], + ['$#,##0_-', false], + ['[$EUR ]#,##0.00_-', false], + ['_[$EUR ]#,##0.00_-', false], + ['[Green]#,##0.00;[Red]#,##0.00_-', false], + ['#,##0.00 "dollars"', false], ]; diff --git a/tests/data/Shared/Date/FormattedPHPToExcel1900.php b/tests/data/Shared/Date/FormattedPHPToExcel1900.php index 6eafc3cc..94d3529a 100644 --- a/tests/data/Shared/Date/FormattedPHPToExcel1900.php +++ b/tests/data/Shared/Date/FormattedPHPToExcel1900.php @@ -2,15 +2,15 @@ // Year Month Day Hours Minutes Seconds Result Comments return [ - [1901, 12, 14, 714], // PHP 32-bit Earliest Date 14-Dec-1901 - [1903, 12, 31, 1461], // 31-Dec-1903 - [1904, 1, 1, 1462], // Excel 1904 Calendar Base Date 01-Jan-1904 - [1904, 1, 2, 1463], // 02-Jan-1904 - [1960, 12, 19, 22269], // 19-Dec-1960 - [1970, 1, 1, 25569], // PHP Base Date 01-Jan-1970 - [1982, 12, 7, 30292], // 07-Dec-1982 - [2008, 6, 12, 39611], // 12-Jun-2008 - [2038, 1, 19, 50424], // PHP 32-bit Latest Date 19-Jan-2038 - [1903, 5, 18, 13, 37, 46, 1234.56789], // 18-May-1903 13:37:46 - [1933, 10, 18, 16, 17, 37, 12345.6789], // 18-Oct-1933 16:17:37 + [1901, 12, 14, 714], // PHP 32-bit Earliest Date 14-Dec-1901 + [1903, 12, 31, 1461], // 31-Dec-1903 + [1904, 1, 1, 1462], // Excel 1904 Calendar Base Date 01-Jan-1904 + [1904, 1, 2, 1463], // 02-Jan-1904 + [1960, 12, 19, 22269], // 19-Dec-1960 + [1970, 1, 1, 25569], // PHP Base Date 01-Jan-1970 + [1982, 12, 7, 30292], // 07-Dec-1982 + [2008, 6, 12, 39611], // 12-Jun-2008 + [2038, 1, 19, 50424], // PHP 32-bit Latest Date 19-Jan-2038 + [1903, 5, 18, 13, 37, 46, 1234.56789], // 18-May-1903 13:37:46 + [1933, 10, 18, 16, 17, 37, 12345.6789], // 18-Oct-1933 16:17:37 ]; diff --git a/tests/data/Shared/Date/TimestampToExcel1900.php b/tests/data/Shared/Date/TimestampToExcel1900.php index 22acbb6f..fe55ef66 100644 --- a/tests/data/Shared/Date/TimestampToExcel1900.php +++ b/tests/data/Shared/Date/TimestampToExcel1900.php @@ -2,15 +2,15 @@ // Unix TimeStamp Result Comments return [ - [-2147472000, 714], // PHP 32-bit Earliest Date 14-Dec-1901 - [-2082931200, 1461], // 31-Dec-1903 - [-2082844800, 1462], // Excel 1904 Calendar Base Date 01-Jan-1904 - [-2082758400, 1463], // 02-Jan-1904 - [-285120000, 22269], // 19-Dec-1960 - [0, 25569], // PHP Base Date 01-Jan-1970 - [408067200, 30292], // 07-Dec-1982 - [1213228800, 39611], // 12-Jun-2008 - [2147472000, 50424], // PHP 32-bit Latest Date 19-Jan-2038 - [-2102494934, 1234.56789], // 18-May-1903 13:37:46 - [-1142494943, 12345.6789], // 18-Oct-1933 16:17:37 + [-2147472000, 714], // PHP 32-bit Earliest Date 14-Dec-1901 + [-2082931200, 1461], // 31-Dec-1903 + [-2082844800, 1462], // Excel 1904 Calendar Base Date 01-Jan-1904 + [-2082758400, 1463], // 02-Jan-1904 + [-285120000, 22269], // 19-Dec-1960 + [0, 25569], // PHP Base Date 01-Jan-1970 + [408067200, 30292], // 07-Dec-1982 + [1213228800, 39611], // 12-Jun-2008 + [2147472000, 50424], // PHP 32-bit Latest Date 19-Jan-2038 + [-2102494934, 1234.56789], // 18-May-1903 13:37:46 + [-1142494943, 12345.6789], // 18-Oct-1933 16:17:37 ]; diff --git a/tests/data/Shared/Date/TimestampToExcel1904.php b/tests/data/Shared/Date/TimestampToExcel1904.php index 93f5b700..95027cca 100644 --- a/tests/data/Shared/Date/TimestampToExcel1904.php +++ b/tests/data/Shared/Date/TimestampToExcel1904.php @@ -2,10 +2,10 @@ // Excel DateTimeStamp Result return [ - [-1956528000, 1462], - [-1956441600, 1463], - [-158803200, 22269], - [126316800, 25569], - [534384000, 30292], - [1339545600, 39611], + [-1956528000, 1462], + [-1956441600, 1463], + [-158803200, 22269], + [126316800, 25569], + [534384000, 30292], + [1339545600, 39611], ]; From cb0930c016ff1c25823bd1a440888ea6a121f43e Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Thu, 25 Aug 2016 19:35:29 +0900 Subject: [PATCH 10/29] Apply Scrutinizer patches for indentation --- src/PhpSpreadsheet/Calculation.php | 16 +- .../Calculation/FormulaParser.php | 4 +- src/PhpSpreadsheet/Cell.php | 6 +- src/PhpSpreadsheet/Chart/GridLines.php | 2 +- src/PhpSpreadsheet/Reader/CSV.php | 7 +- src/PhpSpreadsheet/ReferenceHelper.php | 2 +- src/PhpSpreadsheet/Shared/Font.php | 54 ++-- src/PhpSpreadsheet/Shared/PCLZip/PclZip.php | 50 ++-- src/PhpSpreadsheet/Worksheet/AutoFilter.php | 7 +- .../Writer/Excel2007/Comments.php | 14 +- src/PhpSpreadsheet/Writer/Excel5.php | 244 ++++++++++-------- src/PhpSpreadsheet/Writer/Excel5/Parser.php | 2 +- .../Writer/Excel5/Worksheet.php | 8 +- 13 files changed, 225 insertions(+), 191 deletions(-) diff --git a/src/PhpSpreadsheet/Calculation.php b/src/PhpSpreadsheet/Calculation.php index 1a9cf14a..4660aa9a 100644 --- a/src/PhpSpreadsheet/Calculation.php +++ b/src/PhpSpreadsheet/Calculation.php @@ -232,7 +232,7 @@ class Calculation 'NULL' => null, ]; - // PhpSpreadsheet functions + // PhpSpreadsheet functions private static $phpSpreadsheetFunctions = [ 'ABS' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, @@ -3073,13 +3073,13 @@ class Calculation $pCellParent = ($pCell !== null) ? $pCell->getWorksheet() : null; $regexpMatchString = '/^(' . self::CALCULATION_REGEXP_FUNCTION . - '|' . self::CALCULATION_REGEXP_CELLREF . - '|' . self::CALCULATION_REGEXP_NUMBER . - '|' . self::CALCULATION_REGEXP_STRING . - '|' . self::CALCULATION_REGEXP_OPENBRACE . - '|' . self::CALCULATION_REGEXP_NAMEDRANGE . - '|' . self::CALCULATION_REGEXP_ERROR . - ')/si'; + '|' . self::CALCULATION_REGEXP_CELLREF . + '|' . self::CALCULATION_REGEXP_NUMBER . + '|' . self::CALCULATION_REGEXP_STRING . + '|' . self::CALCULATION_REGEXP_OPENBRACE . + '|' . self::CALCULATION_REGEXP_NAMEDRANGE . + '|' . self::CALCULATION_REGEXP_ERROR . + ')/si'; // Start with initialisation $index = 0; diff --git a/src/PhpSpreadsheet/Calculation/FormulaParser.php b/src/PhpSpreadsheet/Calculation/FormulaParser.php index f3c15b2d..f045d27f 100644 --- a/src/PhpSpreadsheet/Calculation/FormulaParser.php +++ b/src/PhpSpreadsheet/Calculation/FormulaParser.php @@ -497,7 +497,7 @@ class FormulaParser (($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) && ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) || (($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($previousToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_STOP)) || ($previousToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERAND) - )) { + )) { continue; } @@ -509,7 +509,7 @@ class FormulaParser (($nextToken->getTokenType() == FormulaToken::TOKEN_TYPE_FUNCTION) && ($nextToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_START)) || (($nextToken->getTokenType() == FormulaToken::TOKEN_TYPE_SUBEXPRESSION) && ($nextToken->getTokenSubType() == FormulaToken::TOKEN_SUBTYPE_START)) || ($nextToken->getTokenType() == FormulaToken::TOKEN_TYPE_OPERAND) - )) { + )) { continue; } diff --git a/src/PhpSpreadsheet/Cell.php b/src/PhpSpreadsheet/Cell.php index 3a22d18f..66569903 100644 --- a/src/PhpSpreadsheet/Cell.php +++ b/src/PhpSpreadsheet/Cell.php @@ -845,11 +845,11 @@ class Cell $_indexCache[$pColumnIndex] = chr(65 + $pColumnIndex); } elseif ($pColumnIndex < 702) { $_indexCache[$pColumnIndex] = chr(64 + ($pColumnIndex / 26)) . - chr(65 + $pColumnIndex % 26); + chr(65 + $pColumnIndex % 26); } else { $_indexCache[$pColumnIndex] = chr(64 + (($pColumnIndex - 26) / 676)) . - chr(65 + ((($pColumnIndex - 26) % 676) / 26)) . - chr(65 + $pColumnIndex % 26); + chr(65 + ((($pColumnIndex - 26) % 676) / 26)) . + chr(65 + $pColumnIndex % 26); } } diff --git a/src/PhpSpreadsheet/Chart/GridLines.php b/src/PhpSpreadsheet/Chart/GridLines.php index 57bdc219..09992499 100644 --- a/src/PhpSpreadsheet/Chart/GridLines.php +++ b/src/PhpSpreadsheet/Chart/GridLines.php @@ -76,7 +76,7 @@ class GridLines extends Properties private $softEdges = [ 'size' => null, - ]; + ]; /** * Get Object State diff --git a/src/PhpSpreadsheet/Reader/CSV.php b/src/PhpSpreadsheet/Reader/CSV.php index 595ffe27..0bb70c1b 100644 --- a/src/PhpSpreadsheet/Reader/CSV.php +++ b/src/PhpSpreadsheet/Reader/CSV.php @@ -253,9 +253,10 @@ class CSV extends BaseReader implements IReader } $sheet = $spreadsheet->setActiveSheetIndex($this->sheetIndex); - $escapeEnclosures = ['\\' . $this->enclosure, - $this->enclosure . $this->enclosure, - ]; + $escapeEnclosures = [ + '\\' . $this->enclosure, + $this->enclosure . $this->enclosure, + ]; // Set our starting row based on whether we're in contiguous mode or not $currentRow = 1; diff --git a/src/PhpSpreadsheet/ReferenceHelper.php b/src/PhpSpreadsheet/ReferenceHelper.php index ba46a486..16bfca8b 100644 --- a/src/PhpSpreadsheet/ReferenceHelper.php +++ b/src/PhpSpreadsheet/ReferenceHelper.php @@ -446,7 +446,7 @@ class ReferenceHelper if ($cell->getDataType() == Cell\DataType::TYPE_FORMULA) { // Formula should be adjusted $pSheet->getCell($newCoordinates) - ->setValue($this->updateFormulaReferences($cell->getValue(), $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle())); + ->setValue($this->updateFormulaReferences($cell->getValue(), $pBefore, $pNumCols, $pNumRows, $pSheet->getTitle())); } else { // Formula should not be adjusted $pSheet->getCell($newCoordinates)->setValue($cell->getValue()); diff --git a/src/PhpSpreadsheet/Shared/Font.php b/src/PhpSpreadsheet/Shared/Font.php index 5cb43ee2..363dc806 100644 --- a/src/PhpSpreadsheet/Shared/Font.php +++ b/src/PhpSpreadsheet/Shared/Font.php @@ -143,40 +143,40 @@ class Font */ public static $defaultColumnWidths = [ 'Arial' => [ - 1 => ['px' => 24, 'width' => 12.00000000], - 2 => ['px' => 24, 'width' => 12.00000000], - 3 => ['px' => 32, 'width' => 10.66406250], - 4 => ['px' => 32, 'width' => 10.66406250], - 5 => ['px' => 40, 'width' => 10.00000000], - 6 => ['px' => 48, 'width' => 9.59765625], - 7 => ['px' => 48, 'width' => 9.59765625], - 8 => ['px' => 56, 'width' => 9.33203125], - 9 => ['px' => 64, 'width' => 9.14062500], + 1 => ['px' => 24, 'width' => 12.00000000], + 2 => ['px' => 24, 'width' => 12.00000000], + 3 => ['px' => 32, 'width' => 10.66406250], + 4 => ['px' => 32, 'width' => 10.66406250], + 5 => ['px' => 40, 'width' => 10.00000000], + 6 => ['px' => 48, 'width' => 9.59765625], + 7 => ['px' => 48, 'width' => 9.59765625], + 8 => ['px' => 56, 'width' => 9.33203125], + 9 => ['px' => 64, 'width' => 9.14062500], 10 => ['px' => 64, 'width' => 9.14062500], ], 'Calibri' => [ - 1 => ['px' => 24, 'width' => 12.00000000], - 2 => ['px' => 24, 'width' => 12.00000000], - 3 => ['px' => 32, 'width' => 10.66406250], - 4 => ['px' => 32, 'width' => 10.66406250], - 5 => ['px' => 40, 'width' => 10.00000000], - 6 => ['px' => 48, 'width' => 9.59765625], - 7 => ['px' => 48, 'width' => 9.59765625], - 8 => ['px' => 56, 'width' => 9.33203125], - 9 => ['px' => 56, 'width' => 9.33203125], + 1 => ['px' => 24, 'width' => 12.00000000], + 2 => ['px' => 24, 'width' => 12.00000000], + 3 => ['px' => 32, 'width' => 10.66406250], + 4 => ['px' => 32, 'width' => 10.66406250], + 5 => ['px' => 40, 'width' => 10.00000000], + 6 => ['px' => 48, 'width' => 9.59765625], + 7 => ['px' => 48, 'width' => 9.59765625], + 8 => ['px' => 56, 'width' => 9.33203125], + 9 => ['px' => 56, 'width' => 9.33203125], 10 => ['px' => 64, 'width' => 9.14062500], 11 => ['px' => 64, 'width' => 9.14062500], ], 'Verdana' => [ - 1 => ['px' => 24, 'width' => 12.00000000], - 2 => ['px' => 24, 'width' => 12.00000000], - 3 => ['px' => 32, 'width' => 10.66406250], - 4 => ['px' => 32, 'width' => 10.66406250], - 5 => ['px' => 40, 'width' => 10.00000000], - 6 => ['px' => 48, 'width' => 9.59765625], - 7 => ['px' => 48, 'width' => 9.59765625], - 8 => ['px' => 64, 'width' => 9.14062500], - 9 => ['px' => 72, 'width' => 9.00000000], + 1 => ['px' => 24, 'width' => 12.00000000], + 2 => ['px' => 24, 'width' => 12.00000000], + 3 => ['px' => 32, 'width' => 10.66406250], + 4 => ['px' => 32, 'width' => 10.66406250], + 5 => ['px' => 40, 'width' => 10.00000000], + 6 => ['px' => 48, 'width' => 9.59765625], + 7 => ['px' => 48, 'width' => 9.59765625], + 8 => ['px' => 64, 'width' => 9.14062500], + 9 => ['px' => 72, 'width' => 9.00000000], 10 => ['px' => 72, 'width' => 9.00000000], ], ]; diff --git a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php index 7197907b..5d8b2534 100644 --- a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php +++ b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php @@ -541,12 +541,12 @@ class PclZip // ----- For each file in the list check the attributes $v_supported_attributes = [ - PCLZIP_ATT_FILE_NAME => 'mandatory', - PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional', - PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional', - PCLZIP_ATT_FILE_MTIME => 'optional', - PCLZIP_ATT_FILE_CONTENT => 'optional', - PCLZIP_ATT_FILE_COMMENT => 'optional', + PCLZIP_ATT_FILE_NAME => 'mandatory', + PCLZIP_ATT_FILE_NEW_SHORT_NAME => 'optional', + PCLZIP_ATT_FILE_NEW_FULL_NAME => 'optional', + PCLZIP_ATT_FILE_MTIME => 'optional', + PCLZIP_ATT_FILE_CONTENT => 'optional', + PCLZIP_ATT_FILE_COMMENT => 'optional', ]; foreach ($v_att_list as $v_entry) { $v_result = $this->privFileDescrParseAtt($v_entry, $v_filedescr_list[], $v_options, $v_supported_attributes); @@ -704,25 +704,25 @@ class PclZip if ((is_integer($v_arg_list[0])) && ($v_arg_list[0] > 77000)) { // ----- Parse the options $v_result = $this->privParseOptions($v_arg_list, $v_size, $v_options, [ - PCLZIP_OPT_PATH => 'optional', - PCLZIP_OPT_REMOVE_PATH => 'optional', - PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', - PCLZIP_OPT_ADD_PATH => 'optional', - PCLZIP_CB_PRE_EXTRACT => 'optional', - PCLZIP_CB_POST_EXTRACT => 'optional', - PCLZIP_OPT_SET_CHMOD => 'optional', - PCLZIP_OPT_BY_NAME => 'optional', - PCLZIP_OPT_BY_EREG => 'optional', - PCLZIP_OPT_BY_PREG => 'optional', - PCLZIP_OPT_BY_INDEX => 'optional', - PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', - PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional', - PCLZIP_OPT_REPLACE_NEWER => 'optional', - PCLZIP_OPT_STOP_ON_ERROR => 'optional', - PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', - PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', - PCLZIP_OPT_TEMP_FILE_ON => 'optional', - PCLZIP_OPT_TEMP_FILE_OFF => 'optional', + PCLZIP_OPT_PATH => 'optional', + PCLZIP_OPT_REMOVE_PATH => 'optional', + PCLZIP_OPT_REMOVE_ALL_PATH => 'optional', + PCLZIP_OPT_ADD_PATH => 'optional', + PCLZIP_CB_PRE_EXTRACT => 'optional', + PCLZIP_CB_POST_EXTRACT => 'optional', + PCLZIP_OPT_SET_CHMOD => 'optional', + PCLZIP_OPT_BY_NAME => 'optional', + PCLZIP_OPT_BY_EREG => 'optional', + PCLZIP_OPT_BY_PREG => 'optional', + PCLZIP_OPT_BY_INDEX => 'optional', + PCLZIP_OPT_EXTRACT_AS_STRING => 'optional', + PCLZIP_OPT_EXTRACT_IN_OUTPUT => 'optional', + PCLZIP_OPT_REPLACE_NEWER => 'optional', + PCLZIP_OPT_STOP_ON_ERROR => 'optional', + PCLZIP_OPT_EXTRACT_DIR_RESTRICTION => 'optional', + PCLZIP_OPT_TEMP_FILE_THRESHOLD => 'optional', + PCLZIP_OPT_TEMP_FILE_ON => 'optional', + PCLZIP_OPT_TEMP_FILE_OFF => 'optional', ]); if ($v_result != 1) { return 0; diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/src/PhpSpreadsheet/Worksheet/AutoFilter.php index 06382ed9..7aae925c 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -706,9 +706,10 @@ class AutoFilter $operator = ($dynamicRuleType === AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE) ? AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN : AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN; - $ruleValues[] = ['operator' => $operator, - 'value' => $average, - ]; + $ruleValues[] = [ + 'operator' => $operator, + 'value' => $average, + ]; $columnFilterTests[$columnID] = [ 'method' => 'filterTestInCustomDataSet', 'arguments' => ['filterRules' => $ruleValues, 'join' => AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_OR], diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Comments.php b/src/PhpSpreadsheet/Writer/Excel2007/Comments.php index 2e7b034f..97bd070d 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Comments.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Comments.php @@ -46,11 +46,11 @@ class Comments extends WriterPart // XML header $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - // Comments cache - $comments = $pWorksheet->getComments(); + // Comments cache + $comments = $pWorksheet->getComments(); - // Authors cache - $authors = []; + // Authors cache + $authors = []; $authorId = 0; foreach ($comments as $comment) { if (!isset($authors[$comment->getAuthor()])) { @@ -126,8 +126,8 @@ class Comments extends WriterPart // XML header $objWriter->startDocument('1.0', 'UTF-8', 'yes'); - // Comments cache - $comments = $pWorksheet->getComments(); + // Comments cache + $comments = $pWorksheet->getComments(); // xml $objWriter->startElement('xml'); @@ -189,7 +189,7 @@ class Comments extends WriterPart private function writeVMLComment(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pCellReference = 'A1', \PhpSpreadsheet\Comment $pComment = null) { // Metadata - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($pCellReference); + list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($pCellReference); $column = \PhpSpreadsheet\Cell::columnIndexFromString($column); $id = 1024 + $column + $row; $id = substr($id, 0, 4); diff --git a/src/PhpSpreadsheet/Writer/Excel5.php b/src/PhpSpreadsheet/Writer/Excel5.php index 132cc530..f1af16ce 100644 --- a/src/PhpSpreadsheet/Writer/Excel5.php +++ b/src/PhpSpreadsheet/Writer/Excel5.php @@ -294,8 +294,7 @@ class Excel5 extends BaseWriter implements IWriter // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index) $reducedSpId = $countShapes[$sheetIndex]; - $spId = $reducedSpId - | ($sheet->getParent()->getIndex($sheet) + 1) << 10; + $spId = $reducedSpId | ($sheet->getParent()->getIndex($sheet) + 1) << 10; $spContainer->setSpId($spId); // keep track of last reducedSpId @@ -352,8 +351,7 @@ class Excel5 extends BaseWriter implements IWriter // set the shape index (we combine 1-based sheet index and $countShapes to create unique shape index) $reducedSpId = $countShapes[$sheetIndex]; - $spId = $reducedSpId - | ($sheet->getParent()->getIndex($sheet) + 1) << 10; + $spId = $reducedSpId | ($sheet->getParent()->getIndex($sheet) + 1) << 10; $spContainer->setSpId($spId); // keep track of last reducedSpId @@ -564,50 +562,64 @@ class Excel5 extends BaseWriter implements IWriter $dataSection_Content = ''; // GKPIDDSI_CODEPAGE: CodePage - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x01], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x02], // 2 byte signed integer - 'data' => ['data' => 1252], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x01], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x02], // 2 byte signed integer + 'data' => ['data' => 1252], + ]; ++$dataSection_NumProps; // GKPIDDSI_CATEGORY : Category if ($this->spreadsheet->getProperties()->getCategory()) { $dataProp = $this->spreadsheet->getProperties()->getCategory(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x02], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x1E], - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x02], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x1E], + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; } // GKPIDDSI_VERSION :Version of the application that wrote the property storage - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x17], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x03], - 'data' => ['pack' => 'V', 'data' => 0x000C0000], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x17], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x03], + 'data' => ['pack' => 'V', 'data' => 0x000C0000], + ]; ++$dataSection_NumProps; // GKPIDDSI_SCALE : FALSE - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x0B], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x0B], - 'data' => ['data' => false], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x0B], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x0B], + 'data' => ['data' => false], + ]; ++$dataSection_NumProps; // GKPIDDSI_LINKSDIRTY : True if any of the values for the linked properties have changed outside of the application - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x10], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x0B], - 'data' => ['data' => false], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x10], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x0B], + 'data' => ['data' => false], + ]; ++$dataSection_NumProps; // GKPIDDSI_SHAREDOC : FALSE - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x13], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x0B], - 'data' => ['data' => false], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x13], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x0B], + 'data' => ['data' => false], + ]; ++$dataSection_NumProps; // GKPIDDSI_HYPERLINKSCHANGED : True if any of the values for the _PID_LINKS (hyperlink text) have changed outside of the application - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x16], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x0B], - 'data' => ['data' => false], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x16], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x0B], + 'data' => ['data' => false], + ]; ++$dataSection_NumProps; // GKPIDDSI_DOCSPARTS @@ -617,50 +629,54 @@ class Excel5 extends BaseWriter implements IWriter $dataProp = pack('v', 0x0001); $dataProp .= pack('v', 0x0000); // array of UnalignedLpstr - // cch - $dataProp .= pack('v', 0x000A); + // cch + $dataProp .= pack('v', 0x000A); $dataProp .= pack('v', 0x0000); - // value - $dataProp .= 'Worksheet' . chr(0); + // value + $dataProp .= 'Worksheet' . chr(0); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x0D], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x101E], - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x0D], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x101E], + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; // GKPIDDSI_HEADINGPAIR // VtVecHeadingPairValue - // cElements - $dataProp = pack('v', 0x0002); + // cElements + $dataProp = pack('v', 0x0002); $dataProp .= pack('v', 0x0000); - // Array of vtHeadingPair - // vtUnalignedString - headingString - // stringType - $dataProp .= pack('v', 0x001E); - // padding - $dataProp .= pack('v', 0x0000); - // UnalignedLpstr - // cch - $dataProp .= pack('v', 0x0013); + // Array of vtHeadingPair + // vtUnalignedString - headingString + // stringType + $dataProp .= pack('v', 0x001E); + // padding $dataProp .= pack('v', 0x0000); - // value - $dataProp .= 'Feuilles de calcul'; - // vtUnalignedString - headingParts - // wType : 0x0003 = 32 bit signed integer - $dataProp .= pack('v', 0x0300); - // padding - $dataProp .= pack('v', 0x0000); - // value - $dataProp .= pack('v', 0x0100); + // UnalignedLpstr + // cch + $dataProp .= pack('v', 0x0013); + $dataProp .= pack('v', 0x0000); + // value + $dataProp .= 'Feuilles de calcul'; + // vtUnalignedString - headingParts + // wType : 0x0003 = 32 bit signed integer + $dataProp .= pack('v', 0x0300); + // padding + $dataProp .= pack('v', 0x0000); + // value + $dataProp .= pack('v', 0x0100); $dataProp .= pack('v', 0x0000); $dataProp .= pack('v', 0x0000); $dataProp .= pack('v', 0x0000); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x0C], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x100C], - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x0C], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x100C], + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; // 4 Section Length @@ -760,89 +776,109 @@ class Excel5 extends BaseWriter implements IWriter $dataSection_Content = ''; // CodePage : CP-1252 - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x01], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x02], // 2 byte signed integer - 'data' => ['data' => 1252], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x01], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x02], // 2 byte signed integer + 'data' => ['data' => 1252], + ]; ++$dataSection_NumProps; // Title if ($this->spreadsheet->getProperties()->getTitle()) { $dataProp = $this->spreadsheet->getProperties()->getTitle(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x02], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x02], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; } // Subject if ($this->spreadsheet->getProperties()->getSubject()) { $dataProp = $this->spreadsheet->getProperties()->getSubject(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x03], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x03], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; } // Author (Creator) if ($this->spreadsheet->getProperties()->getCreator()) { $dataProp = $this->spreadsheet->getProperties()->getCreator(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x04], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x04], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; } // Keywords if ($this->spreadsheet->getProperties()->getKeywords()) { $dataProp = $this->spreadsheet->getProperties()->getKeywords(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x05], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x05], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; } // Comments (Description) if ($this->spreadsheet->getProperties()->getDescription()) { $dataProp = $this->spreadsheet->getProperties()->getDescription(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x06], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x06], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; } // Last Saved By (LastModifiedBy) if ($this->spreadsheet->getProperties()->getLastModifiedBy()) { $dataProp = $this->spreadsheet->getProperties()->getLastModifiedBy(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x08], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length - 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x08], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x1E], // null-terminated string prepended by dword string length + 'data' => ['data' => $dataProp, 'length' => strlen($dataProp)], + ]; ++$dataSection_NumProps; } // Created Date/Time if ($this->spreadsheet->getProperties()->getCreated()) { $dataProp = $this->spreadsheet->getProperties()->getCreated(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x0C], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - 'data' => ['data' => \PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x0C], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + 'data' => ['data' => \PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], + ]; ++$dataSection_NumProps; } // Modified Date/Time if ($this->spreadsheet->getProperties()->getModified()) { $dataProp = $this->spreadsheet->getProperties()->getModified(); - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x0D], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - 'data' => ['data' => \PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x0D], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) + 'data' => ['data' => \PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], + ]; ++$dataSection_NumProps; } // Security - $dataSection[] = ['summary' => ['pack' => 'V', 'data' => 0x13], - 'offset' => ['pack' => 'V'], - 'type' => ['pack' => 'V', 'data' => 0x03], // 4 byte signed integer - 'data' => ['data' => 0x00], ]; + $dataSection[] = [ + 'summary' => ['pack' => 'V', 'data' => 0x13], + 'offset' => ['pack' => 'V'], + 'type' => ['pack' => 'V', 'data' => 0x03], // 4 byte signed integer + 'data' => ['data' => 0x00], + ]; ++$dataSection_NumProps; // 4 Section Length diff --git a/src/PhpSpreadsheet/Writer/Excel5/Parser.php b/src/PhpSpreadsheet/Writer/Excel5/Parser.php index 133484b0..e188672d 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Parser.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Parser.php @@ -666,7 +666,7 @@ class Parser list($row1, $col1) = $this->cellToPackedRowcol($cell1); list($row2, $col2) = $this->cellToPackedRowcol($cell2); } else { // It's a rows range (like 26:27) - list($row1, $col1, $row2, $col2) = $this->rangeToPackedRange($cell1 . ':' . $cell2); + list($row1, $col1, $row2, $col2) = $this->rangeToPackedRange($cell1 . ':' . $cell2); } // The ptg value depends on the class of the ptg. diff --git a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php index b4a48724..1ba09865 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php @@ -1019,9 +1019,7 @@ class Worksheet extends BIFFwriter $data = pack('vvvv', $row1, $row2, $col1, $col2); // Write the packed data - $this->append($header . $data . - $unknown1 . $options . - $unknown2 . $url_len . $url); + $this->append($header . $data . $unknown1 . $options . $unknown2 . $url_len . $url); return 0; } @@ -1068,9 +1066,7 @@ class Worksheet extends BIFFwriter $data = pack('vvvv', $row1, $row2, $col1, $col2); // Write the packed data - $this->append($header . $data . - $unknown1 . $options . - $url_len . $url); + $this->append($header . $data . $unknown1 . $options . $url_len . $url); return 0; } From b42bafcfe7e44ddb9cadb1882e8782f0eee24adb Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Fri, 26 Aug 2016 13:40:01 +0900 Subject: [PATCH 11/29] Apply Scrutinizer patches for doc comments --- .../CachedObjectStorageFactory.php | 2 +- src/PhpSpreadsheet/Calculation.php | 18 +++++++++-- src/PhpSpreadsheet/Calculation/DateTime.php | 12 ++------ src/PhpSpreadsheet/Calculation/Financial.php | 3 +- .../Calculation/FormulaParser.php | 2 +- src/PhpSpreadsheet/Calculation/Functions.php | 4 +-- src/PhpSpreadsheet/Calculation/Logical.php | 6 ++-- .../Calculation/Statistical.php | 5 +--- src/PhpSpreadsheet/Calculation/TextData.php | 10 +++---- src/PhpSpreadsheet/Cell.php | 2 +- src/PhpSpreadsheet/Chart/Axis.php | 9 ++---- src/PhpSpreadsheet/Chart/DataSeries.php | 6 ++-- src/PhpSpreadsheet/Chart/DataSeriesValues.php | 5 ++-- src/PhpSpreadsheet/Chart/Layout.php | 1 + src/PhpSpreadsheet/Chart/Properties.php | 6 ++++ src/PhpSpreadsheet/Document/Properties.php | 8 ++--- src/PhpSpreadsheet/Helper/HTML.php | 7 ++++- src/PhpSpreadsheet/NamedRange.php | 2 +- src/PhpSpreadsheet/Reader/CSV.php | 2 +- src/PhpSpreadsheet/Reader/Excel2007.php | 10 +++++-- src/PhpSpreadsheet/Reader/Excel2007/Chart.php | 18 +++++++++-- src/PhpSpreadsheet/Reader/Excel5.php | 30 ++++++++++--------- src/PhpSpreadsheet/Reader/Excel5/Color.php | 1 + src/PhpSpreadsheet/Reader/Gnumeric.php | 5 +++- src/PhpSpreadsheet/Reader/HTML.php | 9 +++++- src/PhpSpreadsheet/Shared/Date.php | 2 +- src/PhpSpreadsheet/Shared/Drawing.php | 4 +-- .../DgContainer/SpgrContainer/SpContainer.php | 4 +-- src/PhpSpreadsheet/Shared/Font.php | 4 +-- .../Shared/JAMA/LUDecomposition.php | 8 ++--- src/PhpSpreadsheet/Shared/JAMA/Matrix.php | 4 +-- .../Shared/JAMA/utils/Error.php | 2 +- src/PhpSpreadsheet/Shared/OLE.php | 12 ++++---- src/PhpSpreadsheet/Shared/OLE/PPS/Root.php | 7 +++-- src/PhpSpreadsheet/Shared/OLERead.php | 1 + src/PhpSpreadsheet/Shared/PCLZip/PclZip.php | 4 +++ src/PhpSpreadsheet/Shared/Trend/BestFit.php | 13 +++++--- .../Shared/Trend/ExponentialBestFit.php | 4 +-- .../Shared/Trend/PowerBestFit.php | 2 +- src/PhpSpreadsheet/Shared/XMLWriter.php | 2 +- src/PhpSpreadsheet/Shared/ZipArchive.php | 3 ++ .../Shared/ZipStreamWrapper.php | 4 +-- src/PhpSpreadsheet/Spreadsheet.php | 21 ++++++------- src/PhpSpreadsheet/Style.php | 2 +- src/PhpSpreadsheet/Style/Conditional.php | 4 +-- src/PhpSpreadsheet/Worksheet.php | 16 +++++----- src/PhpSpreadsheet/Worksheet/AutoFilter.php | 2 +- .../Worksheet/AutoFilter/Column/Rule.php | 2 +- .../Worksheet/ColumnCellIterator.php | 2 +- .../Worksheet/ColumnDimension.php | 2 +- src/PhpSpreadsheet/Worksheet/Dimension.php | 2 +- .../Worksheet/Drawing/Shadow.php | 2 +- src/PhpSpreadsheet/Worksheet/PageSetup.php | 4 +-- src/PhpSpreadsheet/Writer/CSV.php | 2 +- src/PhpSpreadsheet/Writer/Excel2007/Chart.php | 3 +- src/PhpSpreadsheet/Writer/Excel5/Escher.php | 1 + src/PhpSpreadsheet/Writer/Excel5/Workbook.php | 12 ++++---- .../Writer/Excel5/Worksheet.php | 2 +- src/PhpSpreadsheet/Writer/HTML.php | 4 +-- src/PhpSpreadsheet/Writer/OpenDocument.php | 2 +- 60 files changed, 203 insertions(+), 145 deletions(-) diff --git a/src/PhpSpreadsheet/CachedObjectStorageFactory.php b/src/PhpSpreadsheet/CachedObjectStorageFactory.php index c92228a4..ab83153e 100644 --- a/src/PhpSpreadsheet/CachedObjectStorageFactory.php +++ b/src/PhpSpreadsheet/CachedObjectStorageFactory.php @@ -122,7 +122,7 @@ class CachedObjectStorageFactory /** * Return the current cache storage class * - * @return \CachedObjectStorage\ICache|null + * @return string **/ public static function getCacheStorageClass() { diff --git a/src/PhpSpreadsheet/Calculation.php b/src/PhpSpreadsheet/Calculation.php index 4660aa9a..2923164c 100644 --- a/src/PhpSpreadsheet/Calculation.php +++ b/src/PhpSpreadsheet/Calculation.php @@ -2350,6 +2350,10 @@ class Calculation return $formula; } + /** + * @param string $fromSeparator + * @param string $toSeparator + */ private static function translateFormula($from, $to, $formula, $fromSeparator, $toSeparator) { // Convert any Excel function names to the required language @@ -2670,6 +2674,9 @@ class Calculation return false; } + /** + * @param string $cellReference + */ public function saveValueToCache($cellReference, $cellValue) { if ($this->calculationCacheEnabled) { @@ -2790,7 +2797,7 @@ class Calculation * Read the dimensions of a matrix, and re-index it with straight numeric keys starting from row 0, column 0 * * @param mixed &$matrix matrix operand - * @return array An array comprising the number of rows, and number of columns + * @return int[] An array comprising the number of rows, and number of columns */ private static function getMatrixDimensions(&$matrix) { @@ -2940,7 +2947,7 @@ class Calculation * Format type and details of an operand for display in the log (based on operand type) * * @param mixed $value First matrix operand - * @return mixed + * @return string|null */ private function showTypeDetails($value) { @@ -3430,6 +3437,10 @@ class Calculation } // evaluate postfix notation + + /** + * @param string $cellID + */ private function processTokenStack($tokens, $cellID = null, Cell $pCell = null) { if ($tokens == false) { @@ -4016,6 +4027,9 @@ class Calculation return strcmp($inversedStr1, $inversedStr2); } + /** + * @param string $matrixFunction + */ private function executeNumericBinaryOperation($cellID, $operand1, $operand2, $operation, $matrixFunction, &$stack) { // Validate the two operands diff --git a/src/PhpSpreadsheet/Calculation/DateTime.php b/src/PhpSpreadsheet/Calculation/DateTime.php index d0b9d698..2efb017d 100644 --- a/src/PhpSpreadsheet/Calculation/DateTime.php +++ b/src/PhpSpreadsheet/Calculation/DateTime.php @@ -918,10 +918,6 @@ class DateTime * PHP DateTime object, or a standard date string * @param mixed $endDate Excel date serial value (float), PHP date timestamp (integer), * PHP DateTime object, or a standard date string - * @param mixed $holidays,... Optional series of Excel date serial value (float), PHP date - * timestamp (integer), PHP DateTime object, or a standard date - * strings that will be excluded from the working calendar, such - * as state and federal holidays and floating holidays. * @return int Interval between the dates */ public static function NETWORKDAYS($startDate, $endDate) @@ -1003,10 +999,6 @@ class DateTime * @param int $endDays The number of nonweekend and nonholiday days before or after * startDate. A positive value for days yields a future date; a * negative value yields a past date. - * @param mixed $holidays,... Optional series of Excel date serial value (float), PHP date - * timestamp (integer), PHP DateTime object, or a standard date - * strings that will be excluded from the working calendar, such - * as state and federal holidays and floating holidays. * @return mixed Excel date/time serial value, PHP date/time serial value or PHP date/time object, * depending on the value of the ReturnDateType flag */ @@ -1143,7 +1135,7 @@ class DateTime * Excel Function: * WEEKDAY(dateValue[,style]) * - * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), + * @param int $dateValue Excel date serial value (float), PHP date timestamp (integer), * PHP DateTime object, or a standard date string * @param int $style A number that determines the type of return value * 1 or omitted Numbers 1 (Sunday) through 7 (Saturday). @@ -1221,7 +1213,7 @@ class DateTime * * @param mixed $dateValue Excel date serial value (float), PHP date timestamp (integer), * PHP DateTime object, or a standard date string - * @param bool $method Week begins on Sunday or Monday + * @param int $method Week begins on Sunday or Monday * 1 or omitted Week begins on Sunday. * 2 Week begins on Monday. * @return int Week Number diff --git a/src/PhpSpreadsheet/Calculation/Financial.php b/src/PhpSpreadsheet/Calculation/Financial.php index 033695b1..37fcc2ad 100644 --- a/src/PhpSpreadsheet/Calculation/Financial.php +++ b/src/PhpSpreadsheet/Calculation/Financial.php @@ -406,7 +406,7 @@ class Financial * date when the security is traded to the buyer. * @param mixed maturity The security's maturity date. * The maturity date is the date when the security expires. - * @param mixed frequency the number of coupon payments per year. + * @param int frequency the number of coupon payments per year. * Valid frequency values are: * 1 Annual * 2 Semi-Annual @@ -478,6 +478,7 @@ class Financial * 2 Actual/360 * 3 Actual/365 * 4 European 30/360 + * @param int $frequency * @return float */ public static function COUPDAYS($settlement, $maturity, $frequency, $basis = 0) diff --git a/src/PhpSpreadsheet/Calculation/FormulaParser.php b/src/PhpSpreadsheet/Calculation/FormulaParser.php index f045d27f..c2a364f3 100644 --- a/src/PhpSpreadsheet/Calculation/FormulaParser.php +++ b/src/PhpSpreadsheet/Calculation/FormulaParser.php @@ -128,7 +128,7 @@ class FormulaParser /** * Get Token count * - * @return string + * @return int */ public function getTokenCount() { diff --git a/src/PhpSpreadsheet/Calculation/Functions.php b/src/PhpSpreadsheet/Calculation/Functions.php index 9cc4f3c0..4f3ed583 100644 --- a/src/PhpSpreadsheet/Calculation/Functions.php +++ b/src/PhpSpreadsheet/Calculation/Functions.php @@ -384,7 +384,7 @@ class Functions * IS_EVEN * * @param mixed $value Value to check - * @return bool + * @return string|bool */ public static function isEven($value = null) { @@ -403,7 +403,7 @@ class Functions * IS_ODD * * @param mixed $value Value to check - * @return bool + * @return string|bool */ public static function isOdd($value = null) { diff --git a/src/PhpSpreadsheet/Calculation/Logical.php b/src/PhpSpreadsheet/Calculation/Logical.php index 7fb896ae..d99eefd1 100644 --- a/src/PhpSpreadsheet/Calculation/Logical.php +++ b/src/PhpSpreadsheet/Calculation/Logical.php @@ -76,7 +76,7 @@ class Logical * * @category Logical Functions * @param mixed $arg,... Data values - * @return bool The logical AND of the arguments. + * @return string|bool The logical AND of the arguments. */ public static function logicalAnd() { @@ -131,7 +131,7 @@ class Logical * * @category Logical Functions * @param mixed $arg,... Data values - * @return bool The logical OR of the arguments. + * @return string|bool The logical OR of the arguments. */ public static function logicalOr() { @@ -185,7 +185,7 @@ class Logical * * @category Logical Functions * @param mixed $logical A value or expression that can be evaluated to TRUE or FALSE - * @return bool The boolean inverse of the argument. + * @return bool|string The boolean inverse of the argument. */ public static function NOT($logical = false) { diff --git a/src/PhpSpreadsheet/Calculation/Statistical.php b/src/PhpSpreadsheet/Calculation/Statistical.php index 83bdb77f..c469cc3e 100644 --- a/src/PhpSpreadsheet/Calculation/Statistical.php +++ b/src/PhpSpreadsheet/Calculation/Statistical.php @@ -882,7 +882,6 @@ class Statistical * @param float $value Value at which you want to evaluate the distribution * @param float $alpha Parameter to the distribution * @param float $beta Parameter to the distribution - * @param bool $cumulative * @return float */ public static function BETADIST($value, $alpha, $beta, $rMin = 0, $rMax = 1) @@ -921,7 +920,6 @@ class Statistical * @param float $beta Parameter to the distribution * @param float $rMin Minimum value * @param float $rMax Maximum value - * @param bool $cumulative * @return float */ public static function BETAINV($probability, $alpha, $beta, $rMin = 0, $rMax = 1) @@ -2569,7 +2567,7 @@ class Statistical * * Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation. * - * @param float $value + * @param float $probability * @param float $mean Mean Value * @param float $stdDev Standard Deviation * @return float @@ -3668,7 +3666,6 @@ class Statistical * @param float $dataSet * @param float $m0 Alpha Parameter * @param float $sigma Beta Parameter - * @param bool $cumulative * @return float */ public static function ZTEST($dataSet, $m0, $sigma = null) diff --git a/src/PhpSpreadsheet/Calculation/TextData.php b/src/PhpSpreadsheet/Calculation/TextData.php index 9aa7f13d..0b446fee 100644 --- a/src/PhpSpreadsheet/Calculation/TextData.php +++ b/src/PhpSpreadsheet/Calculation/TextData.php @@ -54,7 +54,7 @@ class TextData * CHARACTER * * @param string $character Value - * @return int + * @return string */ public static function CHARACTER($character) { @@ -294,7 +294,7 @@ class TextData * @param mixed $value Value to check * @param int $decimals * @param bool $no_commas - * @return bool + * @return string */ public static function FIXEDFORMAT($value, $decimals = 2, $no_commas = false) { @@ -409,7 +409,7 @@ class TextData * STRINGLENGTH * * @param string $value Value - * @return string + * @return int */ public static function STRINGLENGTH($value = '') { @@ -556,7 +556,7 @@ class TextData * RETURNSTRING * * @param mixed $testValue Value to check - * @return bool + * @return string|null */ public static function RETURNSTRING($testValue = '') { @@ -574,7 +574,7 @@ class TextData * * @param mixed $value Value to check * @param string $format Format mask to use - * @return bool + * @return string */ public static function TEXTFORMAT($value, $format) { diff --git a/src/PhpSpreadsheet/Cell.php b/src/PhpSpreadsheet/Cell.php index 66569903..0e29cf7d 100644 --- a/src/PhpSpreadsheet/Cell.php +++ b/src/PhpSpreadsheet/Cell.php @@ -575,7 +575,7 @@ class Cell * * @param string $pCoordinateString * @throws Exception - * @return array Array containing column and row (indexes 0 and 1) + * @return string[] Array containing column and row (indexes 0 and 1) */ public static function coordinateFromString($pCoordinateString = 'A1') { diff --git a/src/PhpSpreadsheet/Chart/Axis.php b/src/PhpSpreadsheet/Chart/Axis.php index 53fc3919..3c59cb90 100644 --- a/src/PhpSpreadsheet/Chart/Axis.php +++ b/src/PhpSpreadsheet/Chart/Axis.php @@ -326,7 +326,7 @@ class Axis extends Properties /** * Set Shadow Properties * - * @param int $shadow_presets + * @param int $sh_presets * @param string $sh_color_value * @param string $sh_color_type * @param string $sh_color_alpha @@ -458,12 +458,7 @@ class Axis extends Properties } /** - * Get Glow Property - * - * @param float $size - * @param string $color_value - * @param int $color_alpha - * @param string $color_type + * Get Shadow Property */ public function getShadowProperty($elements) { diff --git a/src/PhpSpreadsheet/Chart/DataSeries.php b/src/PhpSpreadsheet/Chart/DataSeries.php index 39b3a395..3f335afc 100644 --- a/src/PhpSpreadsheet/Chart/DataSeries.php +++ b/src/PhpSpreadsheet/Chart/DataSeries.php @@ -70,14 +70,14 @@ class DataSeries /** * Plot Grouping Type * - * @var bool + * @var string */ private $plotGrouping; /** * Plot Direction * - * @var bool + * @var string */ private $plotDirection; @@ -112,7 +112,7 @@ class DataSeries /** * Smooth Line * - * @var string + * @var bool */ private $smoothLine; diff --git a/src/PhpSpreadsheet/Chart/DataSeriesValues.php b/src/PhpSpreadsheet/Chart/DataSeriesValues.php index be4140a8..cb615624 100644 --- a/src/PhpSpreadsheet/Chart/DataSeriesValues.php +++ b/src/PhpSpreadsheet/Chart/DataSeriesValues.php @@ -80,6 +80,7 @@ class DataSeriesValues /** * Create a new DataSeriesValues object + * @param string $dataSource */ public function __construct($dataType = self::DATASERIES_TYPE_NUMBER, $dataSource = null, $formatCode = null, $pointCount = 0, $dataValues = [], $marker = null) { @@ -209,7 +210,7 @@ class DataSeriesValues /** * Identify if the Data Series is a multi-level or a simple series * - * @return bool + * @return bool|null */ public function isMultiLevelSeries() { @@ -223,7 +224,7 @@ class DataSeriesValues /** * Return the level count of a multi-level Data Series * - * @return bool + * @return int */ public function multiLevelCount() { diff --git a/src/PhpSpreadsheet/Chart/Layout.php b/src/PhpSpreadsheet/Chart/Layout.php index d33b861f..530f17f8 100644 --- a/src/PhpSpreadsheet/Chart/Layout.php +++ b/src/PhpSpreadsheet/Chart/Layout.php @@ -174,6 +174,7 @@ class Layout * Set Layout Target * * @param Layout Target $value + * @param string $value * @return Layout */ public function setLayoutTarget($value) diff --git a/src/PhpSpreadsheet/Chart/Properties.php b/src/PhpSpreadsheet/Chart/Properties.php index a93f3df2..0e2c3f3b 100644 --- a/src/PhpSpreadsheet/Chart/Properties.php +++ b/src/PhpSpreadsheet/Chart/Properties.php @@ -115,11 +115,17 @@ abstract class Properties SHADOW_PRESETS_PERSPECTIVE_LOWER_RIGHT = 22, SHADOW_PRESETS_PERSPECTIVE_LOWER_LEFT = 23; + /** + * @param float $width + */ protected function getExcelPointsWidth($width) { return $width * 12700; } + /** + * @param float $angle + */ protected function getExcelPointsAngle($angle) { return $angle * 60000; diff --git a/src/PhpSpreadsheet/Document/Properties.php b/src/PhpSpreadsheet/Document/Properties.php index 615e5821..c4d2c0aa 100644 --- a/src/PhpSpreadsheet/Document/Properties.php +++ b/src/PhpSpreadsheet/Document/Properties.php @@ -51,14 +51,14 @@ class Properties /** * Created * - * @var datetime + * @var int */ private $created; /** * Modified * - * @var datetime + * @var int */ private $modified; @@ -178,7 +178,7 @@ class Properties /** * Get Created * - * @return datetime + * @return int */ public function getCreated() { @@ -211,7 +211,7 @@ class Properties /** * Get Modified * - * @return datetime + * @return int */ public function getModified() { diff --git a/src/PhpSpreadsheet/Helper/HTML.php b/src/PhpSpreadsheet/Helper/HTML.php index 0e3de1d4..ed7bcb96 100644 --- a/src/PhpSpreadsheet/Helper/HTML.php +++ b/src/PhpSpreadsheet/Helper/HTML.php @@ -802,7 +802,12 @@ class HTML $this->buildTextRun(); } - protected function handleCallback($element, $callbackTag, $callbacks) + /** + * @param DOMElement $element + * @param string $callbackTag + * @param array $callbacks + */ + protected function handleCallback(DOMElement $element, $callbackTag, array $callbacks) { if (isset($callbacks[$callbackTag])) { $elementHandler = $callbacks[$callbackTag]; diff --git a/src/PhpSpreadsheet/NamedRange.php b/src/PhpSpreadsheet/NamedRange.php index 08742670..07aa7b3c 100644 --- a/src/PhpSpreadsheet/NamedRange.php +++ b/src/PhpSpreadsheet/NamedRange.php @@ -233,7 +233,7 @@ class NamedRange * @param Worksheet|null $pSheet Scope. Use null for global scope * @return NamedRange */ - public static function resolveRange($pNamedRange, Worksheet $pSheet) + public static function resolveRange($pNamedRange, Worksheet $pSheet = null) { return $pSheet->getParent()->getNamedRange($pNamedRange, $pSheet); } diff --git a/src/PhpSpreadsheet/Reader/CSV.php b/src/PhpSpreadsheet/Reader/CSV.php index 0bb70c1b..31c7dea5 100644 --- a/src/PhpSpreadsheet/Reader/CSV.php +++ b/src/PhpSpreadsheet/Reader/CSV.php @@ -59,7 +59,7 @@ class CSV extends BaseReader implements IReader /** * Load rows contiguously * - * @var int + * @var bool */ private $contiguous = false; diff --git a/src/PhpSpreadsheet/Reader/Excel2007.php b/src/PhpSpreadsheet/Reader/Excel2007.php index 0642ca00..5687ad57 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007.php +++ b/src/PhpSpreadsheet/Reader/Excel2007.php @@ -1920,7 +1920,10 @@ class Excel2007 extends BaseReader implements IReader return 'FF000000'; } - private static function readStyle($docStyle, $style) + /** + * @param \PhpSpreadsheet\Style $docStyle + */ + private static function readStyle($docStyle, \PhpSpreadsheet\Style $style) { // format code // if (isset($style->numFmt)) { @@ -2119,7 +2122,10 @@ class Excel2007 extends BaseReader implements IReader return $value; } - private function readRibbon($excel, $customUITarget, $zip) + /** + * @param \PhpSpreadsheet\Spreadsheet $excel + */ + private function readRibbon(\PhpSpreadsheet\Spreadsheet $excel, $customUITarget, $zip) { $baseDir = dirname($customUITarget); $nameCustomUI = basename($customUITarget); diff --git a/src/PhpSpreadsheet/Reader/Excel2007/Chart.php b/src/PhpSpreadsheet/Reader/Excel2007/Chart.php index f75472e5..ccb7ca5a 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007/Chart.php +++ b/src/PhpSpreadsheet/Reader/Excel2007/Chart.php @@ -26,7 +26,12 @@ namespace PhpSpreadsheet\Reader\Excel2007; */ class Chart { - private static function getAttribute($component, $name, $format) + /** + * @param \SimpleXMLElement $component + * @param string $name + * @param string $format + */ + private static function getAttribute(\SimpleXMLElement $component, $name, $format) { $attributes = $component->attributes(); if (isset($attributes[$name])) { @@ -53,7 +58,11 @@ class Chart } } - public static function readChart($chartElements, $chartName) + /** + * @param \SimpleXMLElement $chartElements + * @param string $chartName + */ + public static function readChart(\SimpleXMLElement $chartElements, $chartName) { $namespacesChartMeta = $chartElements->getNamespaces(true); $chartElementsC = $chartElements->children($namespacesChartMeta['c']); @@ -482,7 +491,10 @@ class Chart return $plotAttributes; } - private static function setChartAttributes($plotArea, $plotAttributes) + /** + * @param \PhpSpreadsheet\Chart\Layout $plotArea + */ + private static function setChartAttributes(\PhpSpreadsheet\Chart\Layout $plotArea, $plotAttributes) { foreach ($plotAttributes as $plotAttributeKey => $plotAttributeValue) { switch ($plotAttributeKey) { diff --git a/src/PhpSpreadsheet/Reader/Excel5.php b/src/PhpSpreadsheet/Reader/Excel5.php index f6aa8b19..bc169dab 100644 --- a/src/PhpSpreadsheet/Reader/Excel5.php +++ b/src/PhpSpreadsheet/Reader/Excel5.php @@ -1207,7 +1207,7 @@ class Excel5 extends BaseReader implements IReader * * @param string $data Data stream to read from * @param int $pos Position to start reading from - * @param int $length Record data length + * @param int $len Record data length * * @return string Record data */ @@ -1740,8 +1740,8 @@ class Excel5 extends BaseReader implements IReader /** * Make an RC4 decryptor for the given block * - * @var int Block for which to create decrypto - * @var string $valContext MD5 context state + * @param int Block for which to create decrypto + * @param string $valContext MD5 context state * * @return Excel5\RC4 */ @@ -1772,11 +1772,11 @@ class Excel5 extends BaseReader implements IReader /** * Verify RC4 file password * - * @var string Password to check - * @var string $docid Document id - * @var string $salt_data Salt data - * @var string $hashedsalt_data Hashed salt data - * @var string &$valContext Set to the MD5 context of the value + * @param string $password Password to check + * @param string $docid Document id + * @param string $salt_data Salt data + * @param string $hashedsalt_data Hashed salt data + * @param string $valContext Set to the MD5 context of the value * * @return bool Success */ @@ -5257,8 +5257,7 @@ class Excel5 extends BaseReader implements IReader * Take array of tokens together with additional data for formula and return human readable formula * * @param array $tokens - * @param array $additionalData Additional binary data going with the formula - * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas + * @param string $additionalData Additional binary data going with the formula * @return string Human readable formula */ private function createFormulaFromTokens($tokens, $additionalData) @@ -5374,7 +5373,7 @@ class Excel5 extends BaseReader implements IReader unset($space2, $space3, $space4, $space5); break; case 'tArray': // array constant - $constantArray = self::_readBIFF8ConstantArray($additionalData); + $constantArray = self::readBIFF8ConstantArray($additionalData); $formulaStrings[] = $space1 . $space0 . $constantArray['value']; $additionalData = substr($additionalData, $constantArray['size']); // bite of chunk of additional data unset($space0, $space1); @@ -5419,7 +5418,7 @@ class Excel5 extends BaseReader implements IReader /** * Fetch next token from binary formula data * - * @param string Formula data + * @param string $formulaData Formula data * @param string $baseCell Base cell, only needed when formula contains tRefN tokens, e.g. with shared formulas * @throws Exception * @return array @@ -7118,7 +7117,7 @@ class Excel5 extends BaseReader implements IReader for ($r = 1; $r <= $nr + 1; ++$r) { $items = []; for ($c = 1; $c <= $nc + 1; ++$c) { - $constant = self::_readBIFF8Constant($arrayData); + $constant = self::readBIFF8Constant($arrayData); $items[] = $constant['value']; $arrayData = substr($arrayData, $constant['size']); $size += $constant['size']; @@ -7372,6 +7371,9 @@ class Excel5 extends BaseReader implements IReader return $value; } + /** + * @param int $rknum + */ private static function getIEEE754($rknum) { if (($rknum & 0x02) != 0) { @@ -7405,7 +7407,7 @@ class Excel5 extends BaseReader implements IReader * @param bool $compressed * @return string */ - private static function encodeUTF16($string, $compressed = '') + private static function encodeUTF16($string, $compressed = false) { if ($compressed) { $string = self::uncompressByteString($string); diff --git a/src/PhpSpreadsheet/Reader/Excel5/Color.php b/src/PhpSpreadsheet/Reader/Excel5/Color.php index 7b042c4b..18656a8d 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Color.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Color.php @@ -9,6 +9,7 @@ class Color * * @param int $color Indexed color * @param array $palette Color palette + * @param int $version * @return array RGB color value, example: array('rgb' => 'FF0000') */ public static function map($color, $palette, $version) diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index 0de29851..c5df14f2 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -165,6 +165,9 @@ class Gnumeric extends BaseReader implements IReader return $worksheetInfo; } + /** + * @param string $filename + */ private function gzfileGetContents($filename) { $file = @gzopen($filename, 'rb'); @@ -201,7 +204,7 @@ class Gnumeric extends BaseReader implements IReader * @param string $pFilename * @param Spreadsheet $spreadsheet * @throws Exception - * @return PhpSpreadsheet + * @return Spreadsheet */ public function loadIntoExisting($pFilename, Spreadsheet $spreadsheet) { diff --git a/src/PhpSpreadsheet/Reader/HTML.php b/src/PhpSpreadsheet/Reader/HTML.php index 668af2b5..de49a858 100644 --- a/src/PhpSpreadsheet/Reader/HTML.php +++ b/src/PhpSpreadsheet/Reader/HTML.php @@ -222,7 +222,14 @@ class HTML extends BaseReader implements IReader $cellContent = (string) ''; } - protected function processDomElement(DOMNode $element, $sheet, &$row, &$column, &$cellContent, $format = null) + /** + * @param DOMNode $element + * @param \PhpSpreadsheet\Worksheet $sheet + * @param int $row + * @param string $column + * @param string $cellContent + */ + protected function processDomElement(DOMNode $element, \PhpSpreadsheet\Worksheet $sheet, &$row, &$column, &$cellContent) { foreach ($element->childNodes as $child) { if ($child instanceof DOMText) { diff --git a/src/PhpSpreadsheet/Shared/Date.php b/src/PhpSpreadsheet/Shared/Date.php index 1998c8ac..1a6858ff 100644 --- a/src/PhpSpreadsheet/Shared/Date.php +++ b/src/PhpSpreadsheet/Shared/Date.php @@ -278,7 +278,7 @@ class Date * @param int $hours * @param int $minutes * @param int $seconds - * @return int Excel date/time value + * @return float Excel date/time value */ public static function formattedPHPToExcel($year, $month, $day, $hours = 0, $minutes = 0, $seconds = 0) { diff --git a/src/PhpSpreadsheet/Shared/Drawing.php b/src/PhpSpreadsheet/Shared/Drawing.php index 597f9ddc..6afbdf89 100644 --- a/src/PhpSpreadsheet/Shared/Drawing.php +++ b/src/PhpSpreadsheet/Shared/Drawing.php @@ -111,7 +111,7 @@ class Drawing * Convert pixels to points * * @param int $pValue Value in pixels - * @return int Value in points + * @return float Value in points */ public static function pixelsToPoints($pValue = 0) { @@ -163,7 +163,7 @@ class Drawing * Create a new image from file. By alexander at alexauto dot nl * * @link http://www.php.net/manual/en/function.imagecreatefromwbmp.php#86214 - * @param string $filename Path to Windows DIB (BMP) image + * @param string $p_sFile Path to Windows DIB (BMP) image * @return resource */ public static function imagecreatefrombmp($p_sFile) diff --git a/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php b/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php index e773d24f..bd1e396c 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php +++ b/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php @@ -57,7 +57,7 @@ class SpContainer /** * Shape index (usually group shape has index 0, and the rest: 1,2,3...) * - * @var bool + * @var int */ private $spId; @@ -329,7 +329,7 @@ class SpContainer /** * Set offset in x-direction of bottom-right corner of shape measured in 1/1024 of column width * - * @param int $startOffsetX + * @param int $endOffsetX */ public function setEndOffsetX($endOffsetX = 0) { diff --git a/src/PhpSpreadsheet/Shared/Font.php b/src/PhpSpreadsheet/Shared/Font.php index 363dc806..8c690066 100644 --- a/src/PhpSpreadsheet/Shared/Font.php +++ b/src/PhpSpreadsheet/Shared/Font.php @@ -407,7 +407,7 @@ class Font * Calculate an (approximate) pixel size, based on centimeter size * * @param int $sizeInCm Font size (in centimeters) - * @return int Size (in pixels) + * @return float Size (in pixels) */ public static function centimeterSizeToPixels($sizeInCm = 1) { @@ -417,7 +417,7 @@ class Font /** * Returns the font path given the font * - * @param \PhpSpreadsheet\Style\Font + * @param \PhpSpreadsheet\Style\Font $font * @return string Path to TrueType font file */ public static function getTrueTypeFontFileFromFont($font) diff --git a/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php index bff3c6f9..d5cbf950 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php +++ b/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php @@ -57,7 +57,7 @@ class LUDecomposition /** * LU Decomposition constructor. * - * @param $A Rectangular matrix + * @param Matrix $A Rectangular matrix * @return Structure to access L, U and piv. */ public function __construct($A) @@ -123,7 +123,7 @@ class LUDecomposition /** * Get lower triangular factor. * - * @return array Lower triangular factor + * @return Matrix Lower triangular factor */ public function getL() { @@ -145,7 +145,7 @@ class LUDecomposition /** * Get upper triangular factor. * - * @return array Upper triangular factor + * @return Matrix Upper triangular factor */ public function getU() { @@ -185,7 +185,7 @@ class LUDecomposition /** * Is the matrix nonsingular? * - * @return true if U, and hence A, is nonsingular. + * @return bool true if U, and hence A, is nonsingular. */ public function isNonsingular() { diff --git a/src/PhpSpreadsheet/Shared/JAMA/Matrix.php b/src/PhpSpreadsheet/Shared/JAMA/Matrix.php index 028be1a3..ab1c5157 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/Matrix.php +++ b/src/PhpSpreadsheet/Shared/JAMA/Matrix.php @@ -392,8 +392,8 @@ class Matrix * getMatrixByCol * * Get a submatrix by column index/range - * @param int $i0 Initial column index - * @param int $iF Final column index + * @param int $j0 Initial column index + * @param int $jF Final column index * @return Matrix Submatrix */ public function getMatrixByCol($j0 = null, $jF = null) diff --git a/src/PhpSpreadsheet/Shared/JAMA/utils/Error.php b/src/PhpSpreadsheet/Shared/JAMA/utils/Error.php index 37440487..3ea82186 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/utils/Error.php +++ b/src/PhpSpreadsheet/Shared/JAMA/utils/Error.php @@ -62,7 +62,7 @@ $error['EN'][ROW_LENGTH_EXCEPTION] = 'All rows must have the same length.'; /** * Custom error handler - * @param int $num Error number + * @param int $errorNumber Error number */ function JAMAError($errorNumber = null) { diff --git a/src/PhpSpreadsheet/Shared/OLE.php b/src/PhpSpreadsheet/Shared/OLE.php index 7f28c730..6ab91c62 100644 --- a/src/PhpSpreadsheet/Shared/OLE.php +++ b/src/PhpSpreadsheet/Shared/OLE.php @@ -93,7 +93,7 @@ class OLE * @acces public * @param string $file * @throws \PhpSpreadsheet\Reader\Exception - * @return mixed true on success, PEAR_Error on failure + * @return bool true on success, PEAR_Error on failure */ public function read($file) { @@ -222,7 +222,7 @@ class OLE /** * Reads a signed char. - * @param resource file handle + * @param resource $fh file handle * @return int */ private static function _readInt1($fh) @@ -234,7 +234,7 @@ class OLE /** * Reads an unsigned short (2 octets). - * @param resource file handle + * @param resource $fh file handle * @return int */ private static function _readInt2($fh) @@ -246,7 +246,7 @@ class OLE /** * Reads an unsigned long (4 octets). - * @param resource file handle + * @param resource $fh file handle * @return int */ private static function _readInt4($fh) @@ -260,8 +260,8 @@ class OLE * Gets information about all PPS's on the OLE container from the PPS WK's * creates an OLE_PPS object for each one. * - * @param int the block id of the first block - * @return mixed true on success, PEAR_Error on failure + * @param int $blockId the block id of the first block + * @return bool true on success, PEAR_Error on failure */ public function _readPpsWks($blockId) { diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php index eddbcacc..793d3101 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php @@ -39,6 +39,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS /** * @param int $time_1st A timestamp * @param int $time_2nd A timestamp + * @param File[] $raChild */ public function __construct($time_1st, $time_2nd, $raChild) { @@ -56,7 +57,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS * * @param string|resource $filename The name of the file or stream where to save the OLE container. * @throws \PhpSpreadsheet\Writer\Exception - * @return mixed true on success + * @return bool true on success */ public function save($filename) { @@ -116,7 +117,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS * Calculate some numbers * * @param array $raList Reference to an array of PPS's - * @return array The array of numbers + * @return float[] The array of numbers */ public function _calcSize(&$raList) { @@ -154,7 +155,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS * * @param int $i2 The argument * @see save() - * @return int + * @return float */ private static function adjust2($i2) { diff --git a/src/PhpSpreadsheet/Shared/OLERead.php b/src/PhpSpreadsheet/Shared/OLERead.php index d46ddf91..a9d468eb 100644 --- a/src/PhpSpreadsheet/Shared/OLERead.php +++ b/src/PhpSpreadsheet/Shared/OLERead.php @@ -168,6 +168,7 @@ class OLERead /** * Extract binary stream data * + * @param int $stream * @return string */ public function getStream($stream) diff --git a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php index 5d8b2534..33f70dfc 100644 --- a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php +++ b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php @@ -215,6 +215,10 @@ class PclZip // Note that no real action is taken, if the archive does not exist it is not // created. Use create() for that. // -------------------------------------------------------------------------------- + + /** + * @param string $p_zipname + */ public function __construct($p_zipname) { diff --git a/src/PhpSpreadsheet/Shared/Trend/BestFit.php b/src/PhpSpreadsheet/Shared/Trend/BestFit.php index 07fc444f..892c2800 100644 --- a/src/PhpSpreadsheet/Shared/Trend/BestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/BestFit.php @@ -119,7 +119,7 @@ class BestFit * Return the Y-Value for a specified value of X * * @param float $xValue X-Value - * @return float Y-Value + * @return bool Y-Value */ public function getValueOfYForX($xValue) { @@ -130,7 +130,7 @@ class BestFit * Return the X-Value for a specified value of Y * * @param float $yValue Y-Value - * @return float X-Value + * @return bool X-Value */ public function getValueOfXForY($yValue) { @@ -151,7 +151,7 @@ class BestFit * Return the Equation of the best-fit line * * @param int $dp Number of places of decimal precision to display - * @return string + * @return bool */ public function getEquation($dp = 0) { @@ -370,7 +370,12 @@ class BestFit } } - protected function leastSquareFit($yValues, $xValues, $const) + /** + * @param float[] $yValues + * @param float[] $xValues + * @param bool $const + */ + protected function leastSquareFit(array $yValues, array $xValues, $const) { // calculate sums $x_sum = array_sum($xValues); diff --git a/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php b/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php index 281e0b93..313c321f 100644 --- a/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php @@ -74,7 +74,7 @@ class ExponentialBestFit extends BestFit * Return the Slope of the line * * @param int $dp Number of places of decimal precision to display - * @return string + * @return float **/ public function getSlope($dp = 0) { @@ -89,7 +89,7 @@ class ExponentialBestFit extends BestFit * Return the Value of X where it intersects Y = 0 * * @param int $dp Number of places of decimal precision to display - * @return string + * @return float **/ public function getIntersect($dp = 0) { diff --git a/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php b/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php index b6be976e..42f25a0f 100644 --- a/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php @@ -76,7 +76,7 @@ class PowerBestFit extends BestFit * Return the Value of X where it intersects Y = 0 * * @param int $dp Number of places of decimal precision to display - * @return string + * @return float **/ public function getIntersect($dp = 0) { diff --git a/src/PhpSpreadsheet/Shared/XMLWriter.php b/src/PhpSpreadsheet/Shared/XMLWriter.php index f0568809..bf3ee5df 100644 --- a/src/PhpSpreadsheet/Shared/XMLWriter.php +++ b/src/PhpSpreadsheet/Shared/XMLWriter.php @@ -107,7 +107,7 @@ class XMLWriter extends \XMLWriter * Fallback method for writeRaw, introduced in PHP 5.2 * * @param string $text - * @return string + * @return bool */ public function writeRawData($text) { diff --git a/src/PhpSpreadsheet/Shared/ZipArchive.php b/src/PhpSpreadsheet/Shared/ZipArchive.php index 4ea74071..ea77d255 100644 --- a/src/PhpSpreadsheet/Shared/ZipArchive.php +++ b/src/PhpSpreadsheet/Shared/ZipArchive.php @@ -147,6 +147,9 @@ class ZipArchive return $contents; } + /** + * @param int $index + */ public function getFromIndex($index) { $extracted = $this->zip->extractByIndex($index, PCLZIP_OPT_EXTRACT_AS_STRING); diff --git a/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php b/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php index 7d4fb7aa..b20412a7 100644 --- a/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php +++ b/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php @@ -99,7 +99,7 @@ class ZipStreamWrapper /** * Implements support for fstat(). * - * @return bool + * @return string */ public function statName() { @@ -109,7 +109,7 @@ class ZipStreamWrapper /** * Implements support for fstat(). * - * @return bool + * @return string */ public function url_stat() // @codingStandardsIgnoreLine { diff --git a/src/PhpSpreadsheet/Spreadsheet.php b/src/PhpSpreadsheet/Spreadsheet.php index afe7597d..583be0c5 100644 --- a/src/PhpSpreadsheet/Spreadsheet.php +++ b/src/PhpSpreadsheet/Spreadsheet.php @@ -136,7 +136,7 @@ class Spreadsheet /** * The workbook has macros ? * - * @return true if workbook has macros, false if not + * @return bool */ public function hasMacros() { @@ -177,7 +177,7 @@ class Spreadsheet /** * Set the macros certificate * - * @param string|null $Certificate + * @param string|null $certificate */ public function setMacrosCertificate($certificate = null) { @@ -230,6 +230,7 @@ class Spreadsheet * retrieve ribbon XML Data * * return string|null|array + * @return string */ public function getRibbonXMLData($what = 'all') //we need some constants here... { @@ -303,7 +304,7 @@ class Spreadsheet /** * This workbook have a custom UI ? * - * @return true|false + * @return bool */ public function hasRibbon() { @@ -313,7 +314,7 @@ class Spreadsheet /** * This workbook have additionnal object for the ribbon ? * - * @return true|false + * @return bool */ public function hasRibbonBinObjects() { @@ -609,7 +610,7 @@ class Spreadsheet * * @param Worksheet $pSheet * @throws Exception - * @return Sheet index + * @return int index */ public function getIndex(Worksheet $pSheet) { @@ -628,7 +629,7 @@ class Spreadsheet * @param string $sheetName Sheet name to modify index for * @param int $newIndex New index for the sheet * @throws Exception - * @return New sheet index + * @return int New sheet index */ public function setIndexByName($sheetName, $newIndex) { @@ -772,7 +773,7 @@ class Spreadsheet * Add named range * * @param NamedRange $namedRange - * @return PhpSpreadsheet + * @return bool */ public function addNamedRange(NamedRange $namedRange) { @@ -818,7 +819,7 @@ class Spreadsheet * * @param string $namedRange * @param Worksheet|null $pSheet Scope: use null for global scope. - * @return PhpSpreadsheet + * @return Spreadsheet */ public function removeNamedRange($namedRange, Worksheet $pSheet = null) { @@ -838,7 +839,7 @@ class Spreadsheet /** * Get worksheet iterator * - * @return WorksheetIterator + * @return Worksheet\Iterator */ public function getWorksheetIterator() { @@ -848,7 +849,7 @@ class Spreadsheet /** * Copy workbook (!= clone!) * - * @return PhpSpreadsheet + * @return Spreadsheet */ public function copy() { diff --git a/src/PhpSpreadsheet/Style.php b/src/PhpSpreadsheet/Style.php index db57e1cf..5dd7fce2 100644 --- a/src/PhpSpreadsheet/Style.php +++ b/src/PhpSpreadsheet/Style.php @@ -147,7 +147,7 @@ class Style extends Style\Supervisor implements IComparable /** * Get parent. Only used for style supervisor * - * @return PhpSpreadsheet + * @return Spreadsheet */ public function getParent() { diff --git a/src/PhpSpreadsheet/Style/Conditional.php b/src/PhpSpreadsheet/Style/Conditional.php index d1523720..03c213e7 100644 --- a/src/PhpSpreadsheet/Style/Conditional.php +++ b/src/PhpSpreadsheet/Style/Conditional.php @@ -49,14 +49,14 @@ class Conditional implements \PhpSpreadsheet\IComparable /** * Condition type * - * @var int + * @var string */ private $conditionType; /** * Operator type * - * @var int + * @var string */ private $operatorType; diff --git a/src/PhpSpreadsheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet.php index 9d391ac4..27d2f108 100644 --- a/src/PhpSpreadsheet/Worksheet.php +++ b/src/PhpSpreadsheet/Worksheet.php @@ -328,7 +328,7 @@ class Worksheet implements IComparable /** * Create a new worksheet * - * @param Spreadsheet $Parent + * @param Spreadsheet $parent * @param string $pTitle */ public function __construct(Spreadsheet $parent = null, $pTitle = 'Worksheet') @@ -767,7 +767,7 @@ class Worksheet implements IComparable /** * Get parent * - * @return PhpSpreadsheet + * @return Spreadsheet */ public function getParent() { @@ -1099,8 +1099,8 @@ class Worksheet implements IComparable /** * Set a cell value by using numeric cell coordinates * - * @param string $pColumn Numeric column coordinate of the cell (A = 0) - * @param string $pRow Numeric row coordinate of the cell + * @param int $pColumn Numeric column coordinate of the cell (A = 0) + * @param int $pRow Numeric row coordinate of the cell * @param mixed $pValue Value of the cell * @param bool $returnCell Return the worksheet (false, default) or the cell (true) * @return Worksheet|Cell Depending on the last parameter being specified @@ -1132,8 +1132,8 @@ class Worksheet implements IComparable /** * Set a cell value by using numeric cell coordinates * - * @param string $pColumn Numeric column coordinate of the cell - * @param string $pRow Numeric row coordinate of the cell + * @param int $pColumn Numeric column coordinate of the cell + * @param int $pRow Numeric row coordinate of the cell * @param mixed $pValue Value of the cell * @param string $pDataType Explicit data type * @param bool $returnCell Return the worksheet (false, default) or the cell (true) @@ -1367,7 +1367,7 @@ class Worksheet implements IComparable /** * Get column dimension at a specific column by using numeric cell coordinates * - * @param string $pColumn Numeric column coordinate of the cell + * @param int $pColumn Numeric column coordinate of the cell * @return Worksheet\ColumnDimension */ public function getColumnDimensionByColumn($pColumn = 0) @@ -1492,7 +1492,7 @@ class Worksheet implements IComparable /** * Set conditional styles * - * @param $pCoordinate string E.g. 'A1' + * @param string $pCoordinate eg: 'A1' * @param $pValue Style\Conditional[] * @return Worksheet */ diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/src/PhpSpreadsheet/Worksheet/AutoFilter.php index 7aae925c..41ba5225 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -462,7 +462,7 @@ class AutoFilter * Convert a dynamic rule daterange to a custom filter range expression for ease of calculation * * @param string $dynamicRuleType - * @param AutoFilter\Column &$filterColumn + * @param AutoFilter\Column $filterColumn * @return mixed[] */ private function dynamicFilterDateRange($dynamicRuleType, &$filterColumn) diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php index b0c8c49f..8dd5a682 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php @@ -281,7 +281,7 @@ class Rule * * @param string $pRuleType * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Worksheet\AutoFilter\Column + * @return Rule */ public function setRuleType($pRuleType = self::AUTOFILTER_RULETYPE_FILTER) { diff --git a/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php b/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php index a6a4714f..8ce90f3c 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php @@ -135,7 +135,7 @@ class ColumnCellIterator extends CellIterator implements \Iterator /** * Return the current cell in this worksheet column * - * @return Row + * @return null|\PhpSpreadsheet\Cell */ public function current() { diff --git a/src/PhpSpreadsheet/Worksheet/ColumnDimension.php b/src/PhpSpreadsheet/Worksheet/ColumnDimension.php index 4f7bc3c7..93000628 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnDimension.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnDimension.php @@ -31,7 +31,7 @@ class ColumnDimension extends Dimension /** * Column index * - * @var int + * @var string */ private $columnIndex; diff --git a/src/PhpSpreadsheet/Worksheet/Dimension.php b/src/PhpSpreadsheet/Worksheet/Dimension.php index d5b638e6..aaca274a 100644 --- a/src/PhpSpreadsheet/Worksheet/Dimension.php +++ b/src/PhpSpreadsheet/Worksheet/Dimension.php @@ -59,7 +59,7 @@ abstract class Dimension /** * Create a new Dimension * - * @param int $pIndex Numeric row index + * @param int $initialValue Numeric row index */ public function __construct($initialValue = null) { diff --git a/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php b/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php index 037eee47..cda60fc5 100644 --- a/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php +++ b/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php @@ -234,7 +234,7 @@ class Shadow implements \PhpSpreadsheet\IComparable /** * Set Color * - * @param \PhpSpreadsheet\Style_Color $pValue + * @param \PhpSpreadsheet\Style\Color $pValue * @throws \PhpSpreadsheet\Exception * @return Shadow */ diff --git a/src/PhpSpreadsheet/Worksheet/PageSetup.php b/src/PhpSpreadsheet/Worksheet/PageSetup.php index 47da4257..8ddd1fa4 100644 --- a/src/PhpSpreadsheet/Worksheet/PageSetup.php +++ b/src/PhpSpreadsheet/Worksheet/PageSetup.php @@ -812,7 +812,7 @@ class PageSetup * Set first page number * * @param int $value - * @return HeaderFooter + * @return PageSetup */ public function setFirstPageNumber($value = null) { @@ -824,7 +824,7 @@ class PageSetup /** * Reset first page number * - * @return HeaderFooter + * @return PageSetup */ public function resetFirstPageNumber() { diff --git a/src/PhpSpreadsheet/Writer/CSV.php b/src/PhpSpreadsheet/Writer/CSV.php index c304d564..20ebdc17 100644 --- a/src/PhpSpreadsheet/Writer/CSV.php +++ b/src/PhpSpreadsheet/Writer/CSV.php @@ -318,7 +318,7 @@ class CSV extends BaseWriter implements IWriter /** * Write line to CSV file * - * @param mixed $pFileHandle PHP filehandle + * @param resource $pFileHandle PHP filehandle * @param array $pValues Array containing values in a row * @throws Exception */ diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Chart.php b/src/PhpSpreadsheet/Writer/Excel2007/Chart.php index add25449..fd25afbf 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Chart.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Chart.php @@ -1260,11 +1260,10 @@ class Chart extends WriterPart * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $groupType Type of plot for dataseries * @param string $dataType Datatype of series values - * @param \PhpSpreadsheet\Worksheet $pSheet * * @throws \PhpSpreadsheet\Writer\Exception */ - private function writePlotSeriesValues($plotSeriesValues, $objWriter, $groupType, $dataType = 'str') + private function writePlotSeriesValues($plotSeriesValues, \PhpSpreadsheet\Shared\XMLWriter $objWriter, $groupType, $dataType = 'str') { if (is_null($plotSeriesValues)) { return; diff --git a/src/PhpSpreadsheet/Writer/Excel5/Escher.php b/src/PhpSpreadsheet/Writer/Excel5/Escher.php index 7ee4d930..2a147add 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Escher.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Escher.php @@ -64,6 +64,7 @@ class Escher /** * Process the object to be written + * @return string */ public function close() { diff --git a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php index c4b10382..3b360d58 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php @@ -186,13 +186,13 @@ class Workbook extends BIFFwriter * Class constructor * * @param \PhpSpreadsheet\Spreadsheet $spreadsheet The Workbook - * @param int &$str_total Total number of strings - * @param int &$str_unique Total number of unique strings - * @param array &$str_table String Table - * @param array &$colors Colour Table - * @param mixed $parser The formula parser created for the Workbook + * @param int $str_total Total number of strings + * @param int $str_unique Total number of unique strings + * @param array $str_table String Table + * @param array $colors Colour Table + * @param Parser $parser The formula parser created for the Workbook */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet, &$str_total, &$str_unique, &$str_table, &$colors, $parser) + public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet, &$str_total, &$str_unique, &$str_table, &$colors, Parser $parser) { // It needs to call its parent's constructor explicitly parent::__construct(); diff --git a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php index 1ba09865..754a02ff 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php @@ -650,7 +650,7 @@ class Worksheet extends BIFFwriter * @param int $row Row index (0-based) * @param int $col Column index (0-based) * @param string $str The string - * @param mixed $xfIndex The XF format index for the cell + * @param int $xfIndex The XF format index for the cell * @param array $arrcRun Index to Font record and characters beginning */ private function writeRichTextString($row, $col, $str, $xfIndex, $arrcRun) diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index 57cfb58b..3fa888b2 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -132,7 +132,7 @@ class HTML extends BaseWriter implements IWriter /** * Create a new HTML * - * @param Spreadsheet $spreadsheet + * @param \PhpSpreadsheet\Spreadsheet $spreadsheet */ public function __construct(Spreadsheet $spreadsheet) { @@ -1443,7 +1443,7 @@ class HTML extends BaseWriter implements IWriter * @param bool $pValue * @return HTML */ - public function setEmbedImages($pValue = '.') + public function setEmbedImages($pValue = true) { $this->embedImages = $pValue; diff --git a/src/PhpSpreadsheet/Writer/OpenDocument.php b/src/PhpSpreadsheet/Writer/OpenDocument.php index 7f1bdc71..57c2821e 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument.php @@ -70,7 +70,7 @@ class OpenDocument extends BaseWriter implements IWriter * Get writer part * * @param string $pPartName Writer part name - * @return \PhpSpreadsheet\Writer\Excel2007\WriterPart + * @return OpenDocument\WriterPart|null */ public function getWriterPart($pPartName = '') { From 04d6182a8154d3cea5a716df9d30f355631d10e5 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Fri, 26 Aug 2016 15:05:40 +0900 Subject: [PATCH 12/29] Remove unused variables --- src/PhpSpreadsheet/Writer/HTML.php | 2 +- tests/PhpSpreadsheetTests/CellTest.php | 16 ++++++++-------- .../Chart/DataSeriesValuesTest.php | 4 ++-- .../PhpSpreadsheetTests/Shared/CodePageTest.php | 4 ++-- tests/PhpSpreadsheetTests/Shared/DateTest.php | 14 +++++++------- 5 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index 3fa888b2..f840bbaf 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -1565,7 +1565,7 @@ class HTML extends BaseWriter implements IWriter if (isset($this->isSpannedCell[$sheetIndex][$rowIndex])) { if (count($this->isSpannedCell[$sheetIndex][$rowIndex]) == $countColumns) { $this->isSpannedRow[$sheetIndex][$rowIndex] = $rowIndex; - }; + } } } diff --git a/tests/PhpSpreadsheetTests/CellTest.php b/tests/PhpSpreadsheetTests/CellTest.php index 2112a2bc..7ad5e8bf 100644 --- a/tests/PhpSpreadsheetTests/CellTest.php +++ b/tests/PhpSpreadsheetTests/CellTest.php @@ -27,7 +27,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'ABCD'; try { - $result = call_user_func([Cell::class, 'columnIndexFromString'], $cellAddress); + call_user_func([Cell::class, 'columnIndexFromString'], $cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Column string index can not be longer than 3 characters'); @@ -41,7 +41,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = ''; try { - $result = call_user_func([Cell::class, 'columnIndexFromString'], $cellAddress); + call_user_func([Cell::class, 'columnIndexFromString'], $cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Column string index can not be empty'); @@ -87,7 +87,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'A1:AI2012'; try { - $result = call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); + call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells'); @@ -101,7 +101,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = ''; try { - $result = call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); + call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate can not be zero-length string'); @@ -115,7 +115,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'AI'; try { - $result = call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); + call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Invalid cell coordinate ' . $cellAddress); @@ -145,7 +145,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'A1:AI2012'; try { - $result = call_user_func([Cell::class, 'absoluteCoordinate'], $cellAddress); + call_user_func([Cell::class, 'absoluteCoordinate'], $cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells'); @@ -175,7 +175,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'A1:AI2012'; try { - $result = call_user_func([Cell::class, 'absoluteReference'], $cellAddress); + call_user_func([Cell::class, 'absoluteReference'], $cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells'); @@ -227,7 +227,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellRange = ''; try { - $result = call_user_func([Cell::class, 'buildRange'], $cellRange); + call_user_func([Cell::class, 'buildRange'], $cellRange); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Range does not contain any information'); diff --git a/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php b/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php index 6e12f23b..c94b5b92 100644 --- a/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php +++ b/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php @@ -27,7 +27,7 @@ class DataSeriesValuesTest extends \PHPUnit_Framework_TestCase $testInstance = new DataSeriesValues(); try { - $result = $testInstance->setDataType('BOOLEAN'); + $testInstance->setDataType('BOOLEAN'); } catch (Exception $e) { $this->assertEquals($e->getMessage(), 'Invalid datatype for chart data series values'); @@ -41,7 +41,7 @@ class DataSeriesValuesTest extends \PHPUnit_Framework_TestCase $dataTypeValue = 'String'; $testInstance = new DataSeriesValues(); - $setValue = $testInstance->setDataType($dataTypeValue); + $testInstance->setDataType($dataTypeValue); $result = $testInstance->getDataType(); $this->assertEquals($dataTypeValue, $result); diff --git a/tests/PhpSpreadsheetTests/Shared/CodePageTest.php b/tests/PhpSpreadsheetTests/Shared/CodePageTest.php index c0b77c64..10f93449 100644 --- a/tests/PhpSpreadsheetTests/Shared/CodePageTest.php +++ b/tests/PhpSpreadsheetTests/Shared/CodePageTest.php @@ -27,7 +27,7 @@ class CodePageTest extends \PHPUnit_Framework_TestCase { $invalidCodePage = 12345; try { - $result = call_user_func([CodePage::class, 'numberToName'], $invalidCodePage); + call_user_func([CodePage::class, 'numberToName'], $invalidCodePage); } catch (Exception $e) { $this->assertEquals($e->getMessage(), 'Unknown codepage: 12345'); @@ -40,7 +40,7 @@ class CodePageTest extends \PHPUnit_Framework_TestCase { $unsupportedCodePage = 720; try { - $result = call_user_func([CodePage::class, 'numberToName'], $unsupportedCodePage); + call_user_func([CodePage::class, 'numberToName'], $unsupportedCodePage); } catch (Exception $e) { $this->assertEquals($e->getMessage(), 'Code page 720 not supported.'); diff --git a/tests/PhpSpreadsheetTests/Shared/DateTest.php b/tests/PhpSpreadsheetTests/Shared/DateTest.php index 6c68eaeb..ea0182e7 100644 --- a/tests/PhpSpreadsheetTests/Shared/DateTest.php +++ b/tests/PhpSpreadsheetTests/Shared/DateTest.php @@ -31,7 +31,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeExcelToTimestamp1900() { - $result = call_user_func( + call_user_func( [Date::class, 'setExcelCalendar'], Date::CALENDAR_WINDOWS_1900 ); @@ -52,7 +52,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeTimestampToExcel1900() { - $result = call_user_func( + call_user_func( [Date::class, 'setExcelCalendar'], Date::CALENDAR_WINDOWS_1900 ); @@ -73,7 +73,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeDateTimeToExcel() { - $result = call_user_func( + call_user_func( [Date::class, 'setExcelCalendar'], Date::CALENDAR_WINDOWS_1900 ); @@ -94,7 +94,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeFormattedPHPToExcel1900() { - $result = call_user_func( + call_user_func( [Date::class, 'setExcelCalendar'], Date::CALENDAR_WINDOWS_1900 ); @@ -115,7 +115,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeExcelToTimestamp1904() { - $result = call_user_func( + call_user_func( [Date::class, 'setExcelCalendar'], Date::CALENDAR_MAC_1904 ); @@ -136,7 +136,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeTimestampToExcel1904() { - $result = call_user_func( + call_user_func( [Date::class, 'setExcelCalendar'], Date::CALENDAR_MAC_1904 ); @@ -173,7 +173,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeExcelToTimestamp1900Timezone() { - $result = call_user_func( + call_user_func( [Date::class, 'setExcelCalendar'], Date::CALENDAR_WINDOWS_1900 ); From f917b3b1f46b91dc03fe80016213b609b88be13a Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Fri, 26 Aug 2016 15:39:29 +0900 Subject: [PATCH 13/29] Avoid `call_user_func()` whenever possible --- .../Calculation/TextDataTest.php | 12 +++--- .../PhpSpreadsheetTests/Cell/DataTypeTest.php | 2 +- .../Cell/DefaultValueBinderTest.php | 2 +- tests/PhpSpreadsheetTests/CellTest.php | 16 ++++---- tests/PhpSpreadsheetTests/SettingsTest.php | 4 +- .../Shared/CodePageTest.php | 4 +- tests/PhpSpreadsheetTests/Shared/DateTest.php | 39 +++++-------------- tests/PhpSpreadsheetTests/Shared/FileTest.php | 6 +-- tests/PhpSpreadsheetTests/Shared/FontTest.php | 6 +-- .../PhpSpreadsheetTests/Shared/StringTest.php | 24 ++++++------ .../Shared/TimeZoneTest.php | 4 +- 11 files changed, 49 insertions(+), 70 deletions(-) diff --git a/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php b/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php index b539abba..8b5d0218 100644 --- a/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php @@ -323,9 +323,9 @@ class TextDataTest extends \PHPUnit_Framework_TestCase public function testTEXT() { // Enforce decimal and thousands separator values to UK/US, and currency code to USD - call_user_func([StringHelper::class, 'setDecimalSeparator'], '.'); - call_user_func([StringHelper::class, 'setThousandsSeparator'], ','); - call_user_func([StringHelper::class, 'setCurrencyCode'], '$'); + StringHelper::setDecimalSeparator('.'); + StringHelper::setThousandsSeparator(','); + StringHelper::setCurrencyCode('$'); $args = func_get_args(); $expectedResult = array_pop($args); @@ -343,9 +343,9 @@ class TextDataTest extends \PHPUnit_Framework_TestCase */ public function testVALUE() { - call_user_func([StringHelper::class, 'setDecimalSeparator'], '.'); - call_user_func([StringHelper::class, 'setThousandsSeparator'], ' '); - call_user_func([StringHelper::class, 'setCurrencyCode'], '$'); + StringHelper::setDecimalSeparator('.'); + StringHelper::setThousandsSeparator(' '); + StringHelper::setCurrencyCode('$'); $args = func_get_args(); $expectedResult = array_pop($args); diff --git a/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php b/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php index f0fb0aff..8fced6da 100644 --- a/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php +++ b/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php @@ -16,7 +16,7 @@ class DataTypeTest extends \PHPUnit_Framework_TestCase public function testGetErrorCodes() { - $result = call_user_func([DataType::class, 'getErrorCodes']); + $result = DataType::getErrorCodes(); $this->assertInternalType('array', $result); $this->assertGreaterThan(0, count($result)); $this->assertArrayHasKey('#NULL!', $result); diff --git a/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php b/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php index 38a3629b..c1cd9aae 100644 --- a/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php +++ b/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php @@ -81,7 +81,7 @@ class DefaultValueBinderTest extends \PHPUnit_Framework_TestCase $objRichText->createText('Hello World'); $expectedResult = DataType::TYPE_INLINE; - $result = call_user_func([DefaultValueBinder::class, 'dataTypeForValue'], $objRichText); + $result = DefaultValueBinder::dataTypeForValue($objRichText); $this->assertEquals($expectedResult, $result); } } diff --git a/tests/PhpSpreadsheetTests/CellTest.php b/tests/PhpSpreadsheetTests/CellTest.php index 7ad5e8bf..995d2926 100644 --- a/tests/PhpSpreadsheetTests/CellTest.php +++ b/tests/PhpSpreadsheetTests/CellTest.php @@ -27,7 +27,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'ABCD'; try { - call_user_func([Cell::class, 'columnIndexFromString'], $cellAddress); + Cell::columnIndexFromString($cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Column string index can not be longer than 3 characters'); @@ -41,7 +41,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = ''; try { - call_user_func([Cell::class, 'columnIndexFromString'], $cellAddress); + Cell::columnIndexFromString($cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Column string index can not be empty'); @@ -87,7 +87,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'A1:AI2012'; try { - call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); + Cell::coordinateFromString($cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells'); @@ -101,7 +101,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = ''; try { - call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); + Cell::coordinateFromString($cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate can not be zero-length string'); @@ -115,7 +115,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'AI'; try { - call_user_func([Cell::class, 'coordinateFromString'], $cellAddress); + Cell::coordinateFromString($cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Invalid cell coordinate ' . $cellAddress); @@ -145,7 +145,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'A1:AI2012'; try { - call_user_func([Cell::class, 'absoluteCoordinate'], $cellAddress); + Cell::absoluteCoordinate($cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells'); @@ -175,7 +175,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellAddress = 'A1:AI2012'; try { - call_user_func([Cell::class, 'absoluteReference'], $cellAddress); + Cell::absoluteReference($cellAddress); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Cell coordinate string can not be a range of cells'); @@ -227,7 +227,7 @@ class CellTest extends \PHPUnit_Framework_TestCase { $cellRange = ''; try { - call_user_func([Cell::class, 'buildRange'], $cellRange); + Cell::buildRange($cellRange); } catch (\Exception $e) { $this->assertInstanceOf(Exception::class, $e); $this->assertEquals($e->getMessage(), 'Range does not contain any information'); diff --git a/tests/PhpSpreadsheetTests/SettingsTest.php b/tests/PhpSpreadsheetTests/SettingsTest.php index 4a3c5fa5..4712f206 100644 --- a/tests/PhpSpreadsheetTests/SettingsTest.php +++ b/tests/PhpSpreadsheetTests/SettingsTest.php @@ -12,7 +12,7 @@ class SettingsTest extends \PHPUnit_Framework_TestCase */ public function testGetXMLSettings() { - $result = call_user_func([\PhpSpreadsheet\Settings::class, 'getLibXmlLoaderOptions']); + $result = \PhpSpreadsheet\Settings::getLibXmlLoaderOptions(); $this->assertTrue((bool) ((LIBXML_DTDLOAD | LIBXML_DTDATTR) & $result)); } @@ -21,7 +21,7 @@ class SettingsTest extends \PHPUnit_Framework_TestCase public function testSetXMLSettings() { call_user_func_array([\PhpSpreadsheet\Settings::class, 'setLibXmlLoaderOptions'], [LIBXML_DTDLOAD | LIBXML_DTDATTR | LIBXML_DTDVALID]); - $result = call_user_func([\PhpSpreadsheet\Settings::class, 'getLibXmlLoaderOptions']); + $result = \PhpSpreadsheet\Settings::getLibXmlLoaderOptions(); $this->assertTrue((bool) ((LIBXML_DTDLOAD | LIBXML_DTDATTR | LIBXML_DTDVALID) & $result)); } } diff --git a/tests/PhpSpreadsheetTests/Shared/CodePageTest.php b/tests/PhpSpreadsheetTests/Shared/CodePageTest.php index 10f93449..7376a97c 100644 --- a/tests/PhpSpreadsheetTests/Shared/CodePageTest.php +++ b/tests/PhpSpreadsheetTests/Shared/CodePageTest.php @@ -27,7 +27,7 @@ class CodePageTest extends \PHPUnit_Framework_TestCase { $invalidCodePage = 12345; try { - call_user_func([CodePage::class, 'numberToName'], $invalidCodePage); + CodePage::numberToName($invalidCodePage); } catch (Exception $e) { $this->assertEquals($e->getMessage(), 'Unknown codepage: 12345'); @@ -40,7 +40,7 @@ class CodePageTest extends \PHPUnit_Framework_TestCase { $unsupportedCodePage = 720; try { - call_user_func([CodePage::class, 'numberToName'], $unsupportedCodePage); + CodePage::numberToName($unsupportedCodePage); } catch (Exception $e) { $this->assertEquals($e->getMessage(), 'Code page 720 not supported.'); diff --git a/tests/PhpSpreadsheetTests/Shared/DateTest.php b/tests/PhpSpreadsheetTests/Shared/DateTest.php index ea0182e7..6b8f5741 100644 --- a/tests/PhpSpreadsheetTests/Shared/DateTest.php +++ b/tests/PhpSpreadsheetTests/Shared/DateTest.php @@ -14,7 +14,7 @@ class DateTest extends \PHPUnit_Framework_TestCase ]; foreach ($calendarValues as $calendarValue) { - $result = call_user_func([Date::class, 'setExcelCalendar'], $calendarValue); + $result = Date::setExcelCalendar($calendarValue); $this->assertTrue($result); } } @@ -22,7 +22,7 @@ class DateTest extends \PHPUnit_Framework_TestCase public function testSetExcelCalendarWithInvalidValue() { $unsupportedCalendar = '2012'; - $result = call_user_func([Date::class, 'setExcelCalendar'], $unsupportedCalendar); + $result = Date::setExcelCalendar($unsupportedCalendar); $this->assertFalse($result); } @@ -31,10 +31,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeExcelToTimestamp1900() { - call_user_func( - [Date::class, 'setExcelCalendar'], - Date::CALENDAR_WINDOWS_1900 - ); + Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $args = func_get_args(); $expectedResult = array_pop($args); @@ -52,10 +49,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeTimestampToExcel1900() { - call_user_func( - [Date::class, 'setExcelCalendar'], - Date::CALENDAR_WINDOWS_1900 - ); + Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $args = func_get_args(); $expectedResult = array_pop($args); @@ -73,10 +67,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeDateTimeToExcel() { - call_user_func( - [Date::class, 'setExcelCalendar'], - Date::CALENDAR_WINDOWS_1900 - ); + Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $args = func_get_args(); $expectedResult = array_pop($args); @@ -94,10 +85,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeFormattedPHPToExcel1900() { - call_user_func( - [Date::class, 'setExcelCalendar'], - Date::CALENDAR_WINDOWS_1900 - ); + Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $args = func_get_args(); $expectedResult = array_pop($args); @@ -115,10 +103,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeExcelToTimestamp1904() { - call_user_func( - [Date::class, 'setExcelCalendar'], - Date::CALENDAR_MAC_1904 - ); + Date::setExcelCalendar(Date::CALENDAR_MAC_1904); $args = func_get_args(); $expectedResult = array_pop($args); @@ -136,10 +121,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeTimestampToExcel1904() { - call_user_func( - [Date::class, 'setExcelCalendar'], - Date::CALENDAR_MAC_1904 - ); + Date::setExcelCalendar(Date::CALENDAR_MAC_1904); $args = func_get_args(); $expectedResult = array_pop($args); @@ -173,10 +155,7 @@ class DateTest extends \PHPUnit_Framework_TestCase */ public function testDateTimeExcelToTimestamp1900Timezone() { - call_user_func( - [Date::class, 'setExcelCalendar'], - Date::CALENDAR_WINDOWS_1900 - ); + Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $args = func_get_args(); $expectedResult = array_pop($args); diff --git a/tests/PhpSpreadsheetTests/Shared/FileTest.php b/tests/PhpSpreadsheetTests/Shared/FileTest.php index 61bc9729..cc05a6f6 100644 --- a/tests/PhpSpreadsheetTests/Shared/FileTest.php +++ b/tests/PhpSpreadsheetTests/Shared/FileTest.php @@ -10,7 +10,7 @@ class FileTest extends \PHPUnit_Framework_TestCase { $expectedResult = false; - $result = call_user_func([File::class, 'getUseUploadTempDirectory']); + $result = File::getUseUploadTempDirectory(); $this->assertEquals($expectedResult, $result); } @@ -22,9 +22,9 @@ class FileTest extends \PHPUnit_Framework_TestCase ]; foreach ($useUploadTempDirectoryValues as $useUploadTempDirectoryValue) { - call_user_func([File::class, 'setUseUploadTempDirectory'], $useUploadTempDirectoryValue); + File::setUseUploadTempDirectory($useUploadTempDirectoryValue); - $result = call_user_func([File::class, 'getUseUploadTempDirectory']); + $result = File::getUseUploadTempDirectory(); $this->assertEquals($useUploadTempDirectoryValue, $result); } } diff --git a/tests/PhpSpreadsheetTests/Shared/FontTest.php b/tests/PhpSpreadsheetTests/Shared/FontTest.php index 8a93425f..e50a3f15 100644 --- a/tests/PhpSpreadsheetTests/Shared/FontTest.php +++ b/tests/PhpSpreadsheetTests/Shared/FontTest.php @@ -10,7 +10,7 @@ class FontTest extends \PHPUnit_Framework_TestCase { $expectedResult = Font::AUTOSIZE_METHOD_APPROX; - $result = call_user_func([Font::class, 'getAutoSizeMethod']); + $result = Font::getAutoSizeMethod(); $this->assertEquals($expectedResult, $result); } @@ -22,7 +22,7 @@ class FontTest extends \PHPUnit_Framework_TestCase ]; foreach ($autosizeMethodValues as $autosizeMethodValue) { - $result = call_user_func([Font::class, 'setAutoSizeMethod'], $autosizeMethodValue); + $result = Font::setAutoSizeMethod($autosizeMethodValue); $this->assertTrue($result); } } @@ -31,7 +31,7 @@ class FontTest extends \PHPUnit_Framework_TestCase { $unsupportedAutosizeMethod = 'guess'; - $result = call_user_func([Font::class, 'setAutoSizeMethod'], $unsupportedAutosizeMethod); + $result = Font::setAutoSizeMethod($unsupportedAutosizeMethod); $this->assertFalse($result); } diff --git a/tests/PhpSpreadsheetTests/Shared/StringTest.php b/tests/PhpSpreadsheetTests/Shared/StringTest.php index 8accc643..4fe28bc1 100644 --- a/tests/PhpSpreadsheetTests/Shared/StringTest.php +++ b/tests/PhpSpreadsheetTests/Shared/StringTest.php @@ -11,18 +11,18 @@ class StringTest extends \PHPUnit_Framework_TestCase parent::setUp(); // Reset Currency Code - call_user_func([StringHelper::class, 'setCurrencyCode'], null); + StringHelper::setCurrencyCode(null); } public function testGetIsMbStringEnabled() { - $result = call_user_func([StringHelper::class, 'getIsMbstringEnabled']); + $result = StringHelper::getIsMbstringEnabled(); $this->assertTrue($result); } public function testGetIsIconvEnabled() { - $result = call_user_func([StringHelper::class, 'getIsIconvEnabled']); + $result = StringHelper::getIsIconvEnabled(); $this->assertTrue($result); } @@ -31,16 +31,16 @@ class StringTest extends \PHPUnit_Framework_TestCase $localeconv = localeconv(); $expectedResult = (!empty($localeconv['decimal_point'])) ? $localeconv['decimal_point'] : ','; - $result = call_user_func([StringHelper::class, 'getDecimalSeparator']); + $result = StringHelper::getDecimalSeparator(); $this->assertEquals($expectedResult, $result); } public function testSetDecimalSeparator() { $expectedResult = ','; - call_user_func([StringHelper::class, 'setDecimalSeparator'], $expectedResult); + StringHelper::setDecimalSeparator($expectedResult); - $result = call_user_func([StringHelper::class, 'getDecimalSeparator']); + $result = StringHelper::getDecimalSeparator(); $this->assertEquals($expectedResult, $result); } @@ -49,16 +49,16 @@ class StringTest extends \PHPUnit_Framework_TestCase $localeconv = localeconv(); $expectedResult = (!empty($localeconv['thousands_sep'])) ? $localeconv['thousands_sep'] : ','; - $result = call_user_func([StringHelper::class, 'getThousandsSeparator']); + $result = StringHelper::getThousandsSeparator(); $this->assertEquals($expectedResult, $result); } public function testSetThousandsSeparator() { $expectedResult = ' '; - call_user_func([StringHelper::class, 'setThousandsSeparator'], $expectedResult); + StringHelper::setThousandsSeparator($expectedResult); - $result = call_user_func([StringHelper::class, 'getThousandsSeparator']); + $result = StringHelper::getThousandsSeparator(); $this->assertEquals($expectedResult, $result); } @@ -66,16 +66,16 @@ class StringTest extends \PHPUnit_Framework_TestCase { $localeconv = localeconv(); $expectedResult = (!empty($localeconv['currency_symbol']) ? $localeconv['currency_symbol'] : (!empty($localeconv['int_curr_symbol']) ? $localeconv['int_curr_symbol']: '$')); - $result = call_user_func([StringHelper::class, 'getCurrencyCode']); + $result = StringHelper::getCurrencyCode(); $this->assertEquals($expectedResult, $result); } public function testSetCurrencyCode() { $expectedResult = '£'; - call_user_func([StringHelper::class, 'setCurrencyCode'], $expectedResult); + StringHelper::setCurrencyCode($expectedResult); - $result = call_user_func([StringHelper::class, 'getCurrencyCode']); + $result = StringHelper::getCurrencyCode(); $this->assertEquals($expectedResult, $result); } } diff --git a/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php b/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php index 3b6d05e5..5483e730 100644 --- a/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php +++ b/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php @@ -17,7 +17,7 @@ class TimeZoneTest extends \PHPUnit_Framework_TestCase ]; foreach ($timezoneValues as $timezoneValue) { - $result = call_user_func([TimeZone::class, 'setTimezone'], $timezoneValue); + $result = TimeZone::setTimezone($timezoneValue); $this->assertTrue($result); } } @@ -25,7 +25,7 @@ class TimeZoneTest extends \PHPUnit_Framework_TestCase public function testSetTimezoneWithInvalidValue() { $unsupportedTimezone = 'Etc/GMT+10'; - $result = call_user_func([TimeZone::class, 'setTimezone'], $unsupportedTimezone); + $result = TimeZone::setTimezone($unsupportedTimezone); $this->assertFalse($result); } } From 91417ad1c3c3ac692d2ea19b7383da763349def1 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli Date: Fri, 26 Aug 2016 18:08:26 +0900 Subject: [PATCH 14/29] Delete debug and commented out code --- src/PhpSpreadsheet/Calculation.php | 117 +----------------- src/PhpSpreadsheet/Calculation/MathTrig.php | 2 - .../Calculation/Statistical.php | 1 - src/PhpSpreadsheet/Cell.php | 11 +- src/PhpSpreadsheet/Chart/DataSeriesValues.php | 2 - src/PhpSpreadsheet/Chart/Layout.php | 2 - src/PhpSpreadsheet/Chart/Legend.php | 2 - src/PhpSpreadsheet/Reader/Excel2003XML.php | 36 ------ src/PhpSpreadsheet/Reader/Excel2007.php | 53 +------- src/PhpSpreadsheet/Reader/Excel2007/Chart.php | 1 - src/PhpSpreadsheet/Reader/Excel5.php | 61 --------- src/PhpSpreadsheet/Reader/Exception.php | 2 - src/PhpSpreadsheet/Reader/Gnumeric.php | 22 ---- src/PhpSpreadsheet/Reader/HTML.php | 32 ----- src/PhpSpreadsheet/Reader/OOCalc.php | 68 ---------- src/PhpSpreadsheet/Shared/CodePage.php | 2 - src/PhpSpreadsheet/Shared/Date.php | 2 - src/PhpSpreadsheet/Shared/File.php | 2 - src/PhpSpreadsheet/Shared/Font.php | 8 -- src/PhpSpreadsheet/Shared/OLE.php | 4 +- src/PhpSpreadsheet/Shared/OLE/PPS.php | 10 +- src/PhpSpreadsheet/Shared/OLE/PPS/File.php | 1 - src/PhpSpreadsheet/Shared/OLE/PPS/Root.php | 30 +---- src/PhpSpreadsheet/Shared/OLERead.php | 2 - src/PhpSpreadsheet/Shared/PCLZip/PclZip.php | 6 - src/PhpSpreadsheet/Shared/PasswordHasher.php | 2 - src/PhpSpreadsheet/Shared/StringHelper.php | 4 +- src/PhpSpreadsheet/Shared/TimeZone.php | 2 - src/PhpSpreadsheet/Shared/Trend/BestFit.php | 2 - .../Shared/Trend/PowerBestFit.php | 2 - src/PhpSpreadsheet/Style/NumberFormat.php | 3 - src/PhpSpreadsheet/Worksheet.php | 10 +- src/PhpSpreadsheet/Worksheet/AutoFilter.php | 11 -- .../Worksheet/AutoFilter/Column.php | 2 - .../Worksheet/AutoFilter/Column/Rule.php | 2 - src/PhpSpreadsheet/Worksheet/BaseDrawing.php | 2 - src/PhpSpreadsheet/Worksheet/CellIterator.php | 2 - src/PhpSpreadsheet/Worksheet/Column.php | 2 - .../Worksheet/ColumnCellIterator.php | 2 - .../Worksheet/ColumnDimension.php | 2 - .../Worksheet/ColumnIterator.php | 2 - src/PhpSpreadsheet/Worksheet/Dimension.php | 2 - src/PhpSpreadsheet/Worksheet/Drawing.php | 2 - .../Worksheet/Drawing/Shadow.php | 2 - src/PhpSpreadsheet/Worksheet/HeaderFooter.php | 2 - .../Worksheet/HeaderFooterDrawing.php | 2 - .../Worksheet/MemoryDrawing.php | 2 - src/PhpSpreadsheet/Worksheet/PageMargins.php | 2 - src/PhpSpreadsheet/Worksheet/PageSetup.php | 2 - src/PhpSpreadsheet/Worksheet/Protection.php | 2 - src/PhpSpreadsheet/Worksheet/Row.php | 2 - .../Worksheet/RowCellIterator.php | 2 - src/PhpSpreadsheet/Worksheet/RowDimension.php | 2 - src/PhpSpreadsheet/Worksheet/RowIterator.php | 2 - src/PhpSpreadsheet/Worksheet/SheetView.php | 2 - src/PhpSpreadsheet/Writer/BaseWriter.php | 2 - src/PhpSpreadsheet/Writer/Excel2007/Chart.php | 6 - .../Writer/Excel2007/Comments.php | 3 - .../Writer/Excel2007/Drawing.php | 41 ------ src/PhpSpreadsheet/Writer/Excel2007/Rels.php | 15 --- .../Writer/Excel2007/StringTable.php | 12 -- .../Writer/Excel2007/Worksheet.php | 2 - .../Writer/Excel2007/WriterPart.php | 2 - src/PhpSpreadsheet/Writer/Excel5.php | 2 - .../Writer/Excel5/BIFFwriter.php | 3 - src/PhpSpreadsheet/Writer/Excel5/Escher.php | 3 - src/PhpSpreadsheet/Writer/Excel5/Font.php | 2 - src/PhpSpreadsheet/Writer/Excel5/Parser.php | 46 +------ src/PhpSpreadsheet/Writer/Excel5/Workbook.php | 6 +- .../Writer/Excel5/Worksheet.php | 13 +- src/PhpSpreadsheet/Writer/Excel5/Xf.php | 2 - src/PhpSpreadsheet/Writer/Exception.php | 2 - src/PhpSpreadsheet/Writer/HTML.php | 2 - .../Writer/OpenDocument/Cell/Comment.php | 13 +- .../Writer/OpenDocument/Content.php | 1 - 75 files changed, 22 insertions(+), 715 deletions(-) diff --git a/src/PhpSpreadsheet/Calculation.php b/src/PhpSpreadsheet/Calculation.php index 2923164c..37be865c 100644 --- a/src/PhpSpreadsheet/Calculation.php +++ b/src/PhpSpreadsheet/Calculation.php @@ -18,8 +18,6 @@ if (!defined('CALCULATION_REGEXP_CELLREF')) { } /** - * \PhpSpreadsheet\Calculation (Multiton) - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -3099,34 +3097,25 @@ class Calculation // The guts of the lexical parser // Loop through the formula extracting each operator and operand in turn while (true) { - //echo 'Assessing Expression '.substr($formula, $index), PHP_EOL; $opCharacter = $formula{$index}; // Get the first character of the value at the current index position -//echo 'Initial character of expression block is '.$opCharacter, PHP_EOL; if ((isset(self::$comparisonOperators[$opCharacter])) && (strlen($formula) > $index) && (isset(self::$comparisonOperators[$formula{$index + 1}]))) { $opCharacter .= $formula{++$index}; -//echo 'Initial character of expression block is comparison operator '.$opCharacter.PHP_EOL; } // Find out if we're currently at the beginning of a number, variable, cell reference, function, parenthesis or operand $isOperandOrFunction = preg_match($regexpMatchString, substr($formula, $index), $match); -//echo '$isOperandOrFunction is '.(($isOperandOrFunction) ? 'True' : 'False').PHP_EOL; -//var_dump($match); if ($opCharacter == '-' && !$expectingOperator) { // Is it a negation instead of a minus? -//echo 'Element is a Negation operator', PHP_EOL; $stack->push('Unary Operator', '~'); // Put a negation on the stack ++$index; // and drop the negation symbol } elseif ($opCharacter == '%' && $expectingOperator) { - //echo 'Element is a Percentage operator', PHP_EOL; $stack->push('Unary Operator', '%'); // Put a percentage on the stack ++$index; } elseif ($opCharacter == '+' && !$expectingOperator) { // Positive (unary plus rather than binary operator plus) can be discarded? -//echo 'Element is a Positive number, not Plus operator', PHP_EOL; ++$index; // Drop the redundant plus symbol } elseif ((($opCharacter == '~') || ($opCharacter == '|')) && (!$isOperandOrFunction)) { // We have to explicitly deny a tilde or pipe, because they are legal return $this->raiseFormulaError("Formula Error: Illegal character '~'"); // on the stack but not in the input expression } elseif ((isset(self::$operators[$opCharacter]) or $isOperandOrFunction) && $expectingOperator) { // Are we putting an operator on the stack? -//echo 'Element with value '.$opCharacter.' is an Operator', PHP_EOL; while ($stack->count() > 0 && ($o2 = $stack->last()) && isset(self::$operators[$o2['value']]) && @@ -3137,7 +3126,6 @@ class Calculation ++$index; $expectingOperator = false; } elseif ($opCharacter == ')' && $expectingOperator) { // Are we expecting to close a parenthesis? -//echo 'Element is a Closing bracket', PHP_EOL; $expectingOperand = false; while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( if ($o2 === null) { @@ -3149,24 +3137,14 @@ class Calculation $d = $stack->last(2); if (preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $d['value'], $matches)) { // Did this parenthesis just close a function? $functionName = $matches[1]; // Get the function name -//echo 'Closed Function is '.$functionName, PHP_EOL; $d = $stack->pop(); $argumentCount = $d['value']; // See how many arguments there were (argument count is the next value stored on the stack) -//if ($argumentCount == 0) { -// echo 'With no arguments', PHP_EOL; -//} elseif ($argumentCount == 1) { -// echo 'With 1 argument', PHP_EOL; -//} else { -// echo 'With '.$argumentCount.' arguments', PHP_EOL; -//} $output[] = $d; // Dump the argument count on the output $output[] = $stack->pop(); // Pop the function and push onto the output if (isset(self::$controlFunctions[$functionName])) { - //echo 'Built-in function '.$functionName, PHP_EOL; $expectedArgumentCount = self::$controlFunctions[$functionName]['argumentCount']; $functionCall = self::$controlFunctions[$functionName]['functionCall']; } elseif (isset(self::$phpSpreadsheetFunctions[$functionName])) { - //echo 'PhpSpreadsheet function '.$functionName, PHP_EOL; $expectedArgumentCount = self::$phpSpreadsheetFunctions[$functionName]['argumentCount']; $functionCall = self::$phpSpreadsheetFunctions[$functionName]['functionCall']; } else { // did we somehow push a non-function on the stack? this should never happen @@ -3176,13 +3154,11 @@ class Calculation $argumentCountError = false; if (is_numeric($expectedArgumentCount)) { if ($expectedArgumentCount < 0) { - //echo '$expectedArgumentCount is between 0 and '.abs($expectedArgumentCount), PHP_EOL; if ($argumentCount > abs($expectedArgumentCount)) { $argumentCountError = true; $expectedArgumentCountString = 'no more than ' . abs($expectedArgumentCount); } } else { - //echo '$expectedArgumentCount is numeric '.$expectedArgumentCount, PHP_EOL; if ($argumentCount != $expectedArgumentCount) { $argumentCountError = true; $expectedArgumentCountString = $expectedArgumentCount; @@ -3190,8 +3166,6 @@ class Calculation } } elseif ($expectedArgumentCount != '*') { $isOperandOrFunction = preg_match('/(\d*)([-+,])(\d*)/', $expectedArgumentCount, $argMatch); -//print_r($argMatch); -//echo PHP_EOL; switch ($argMatch[2]) { case '+': if ($argumentCount < $argMatch[1]) { @@ -3219,7 +3193,6 @@ class Calculation } ++$index; } elseif ($opCharacter == ',') { // Is this the separator for function arguments? -//echo 'Element is a Function argument separator', PHP_EOL; while (($o2 = $stack->pop()) && $o2['value'] != '(') { // Pop off the stack back to the last ( if ($o2 === null) { return $this->raiseFormulaError('Formula Error: Unexpected ,'); @@ -3244,7 +3217,6 @@ class Calculation $expectingOperand = true; ++$index; } elseif ($opCharacter == '(' && !$expectingOperator) { - // echo 'Element is an Opening Bracket
'; $stack->push('Brace', '('); ++$index; } elseif ($isOperandOrFunction && !$expectingOperator) { // do we now have a function/variable/number? @@ -3252,11 +3224,9 @@ class Calculation $expectingOperand = false; $val = $match[1]; $length = strlen($val); -// echo 'Element with value '.$val.' is an Operand, Variable, Constant, String, Number, Cell Reference or Function
'; if (preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $val, $matches)) { $val = preg_replace('/\s/u', '', $val); -// echo 'Element '.$val.' is a Function
'; if (isset(self::$phpSpreadsheetFunctions[strtoupper($matches[1])]) || isset(self::$controlFunctions[strtoupper($matches[1])])) { // it's a function $stack->push('Function', strtoupper($val)); $ax = preg_match('/^\s*(\s*\))/ui', substr($formula, $index + $length), $amatch); @@ -3272,7 +3242,6 @@ class Calculation $output[] = ['type' => 'Value', 'value' => $matches[1], 'reference' => null]; } } elseif (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '$/i', $val, $matches)) { - // echo 'Element '.$val.' is a Cell reference
'; // Watch for this case-change when modifying to allow cell references in different worksheets... // Should only be applied to the actual cell column, not the worksheet name @@ -3294,9 +3263,7 @@ class Calculation } $output[] = ['type' => 'Cell Reference', 'value' => $val, 'reference' => $val]; -// $expectingOperator = FALSE; } else { // it's a variable, constant, string, number or boolean -// echo 'Element is a Variable, Constant, String, Number or Boolean
'; // If the last entry on the stack was a : operator, then we may have a row or column range reference $testPrevOp = $stack->last(1); if ($testPrevOp['value'] == ':') { @@ -3332,24 +3299,18 @@ class Calculation $localeConstant = false; if ($opCharacter == '"') { - // echo 'Element is a String
'; // UnEscape any quotes within the string $val = self::wrapResult(str_replace('""', '"', self::unwrapResult($val))); } elseif (is_numeric($val)) { - // echo 'Element is a Number
'; if ((strpos($val, '.') !== false) || (stripos($val, 'e') !== false) || ($val > PHP_INT_MAX) || ($val < -PHP_INT_MAX)) { - // echo 'Casting '.$val.' to float
'; $val = (float) $val; } else { - // echo 'Casting '.$val.' to integer
'; $val = (integer) $val; } } elseif (isset(self::$excelConstants[trim(strtoupper($val))])) { $excelConstant = trim(strtoupper($val)); -// echo 'Element '.$excelConstant.' is an Excel Constant
'; $val = self::$excelConstants[$excelConstant]; } elseif (($localeConstant = array_search(trim(strtoupper($val)), self::$localeBoolean)) !== false) { - // echo 'Element '.$localeConstant.' is an Excel Constant
'; $val = self::$excelConstants[$localeConstant]; } $details = ['type' => 'Value', 'value' => $val, 'reference' => null]; @@ -3394,10 +3355,8 @@ class Calculation } // If we're expecting an operator, but only have a space between the previous and next operands (and both are // Cell References) then we have an INTERSECTION operator -// echo 'Possible Intersect Operator
'; if (($expectingOperator) && (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '.*/Ui', substr($formula, $index), $match)) && ($output[count($output) - 1]['type'] == 'Cell Reference')) { - // echo 'Element is an Intersect Operator
'; while ($stack->count() > 0 && ($o2 = $stack->last()) && isset(self::$operators[$o2['value']]) && @@ -3455,13 +3414,9 @@ class Calculation // Loop through each token in turn foreach ($tokens as $tokenData) { - // print_r($tokenData); -// echo '
'; $token = $tokenData['value']; -// echo 'Token is '.$token.'
'; // if the token is a binary operator, pop the top two values off the stack, do the operation, and push the result back on the stack if (isset(self::$binaryOperators[$token])) { - // echo 'Token is a binary operator
'; // We must have two operands, error if we don't if (($operand2Data = $stack->pop()) === null) { return $this->raiseFormulaError('Internal error - Operand value missing from stack'); @@ -3604,17 +3559,14 @@ class Calculation // if the token is a unary operator, pop one value off the stack, do the operation, and push it back on } elseif (($token === '~') || ($token === '%')) { - // echo 'Token is a unary operator
'; if (($arg = $stack->pop()) === null) { return $this->raiseFormulaError('Internal error - Operand value missing from stack'); } $arg = $arg['value']; if ($token === '~') { - // echo 'Token is a negation operator
'; $this->_debugLog->writeDebugLog('Evaluating Negation of ', $this->showValue($arg)); $multiplier = -1; } else { - // echo 'Token is a percentile operator
'; $this->_debugLog->writeDebugLog('Evaluating Percentile of ', $this->showValue($arg)); $multiplier = 0.01; } @@ -3635,9 +3587,7 @@ class Calculation } } elseif (preg_match('/^' . self::CALCULATION_REGEXP_CELLREF . '$/i', $token, $matches)) { $cellRef = null; -// echo 'Element '.$token.' is a Cell reference
'; if (isset($matches[8])) { - // echo 'Reference is a Range of cells
'; if ($pCell === null) { // We can't access the range, so return a REF error $cellValue = Calculation\Functions::REF(); @@ -3650,7 +3600,6 @@ class Calculation return $this->raiseFormulaError('Unable to access External Workbook'); } $matches[2] = trim($matches[2], "\"'"); -// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
'; $this->_debugLog->writeDebugLog('Evaluating Cell Range ', $cellRef, ' in worksheet ', $matches[2]); if ($pCellParent !== null) { $cellValue = $this->extractCellRange($cellRef, $this->spreadsheet->getSheetByName($matches[2]), false); @@ -3658,9 +3607,7 @@ class Calculation return $this->raiseFormulaError('Unable to access Cell Reference'); } $this->_debugLog->writeDebugLog('Evaluation Result for cells ', $cellRef, ' in worksheet ', $matches[2], ' is ', $this->showTypeDetails($cellValue)); -// $cellRef = $matches[2].'!'.$cellRef; } else { - // echo '$cellRef='.$cellRef.' in current worksheet
'; $this->_debugLog->writeDebugLog('Evaluating Cell Range ', $cellRef, ' in current worksheet'); if ($pCellParent !== null) { $cellValue = $this->extractCellRange($cellRef, $pCellWorksheet, false); @@ -3671,7 +3618,6 @@ class Calculation } } } else { - // echo 'Reference is a single Cell
'; if ($pCell === null) { // We can't access the cell, so return a REF error $cellValue = Calculation\Functions::REF(); @@ -3683,7 +3629,6 @@ class Calculation // It's a Reference to an external spreadsheet (not currently supported) return $this->raiseFormulaError('Unable to access External Workbook'); } -// echo '$cellRef='.$cellRef.' in worksheet '.$matches[2].'
'; $this->_debugLog->writeDebugLog('Evaluating Cell ', $cellRef, ' in worksheet ', $matches[2]); if ($pCellParent !== null) { $cellSheet = $this->spreadsheet->getSheetByName($matches[2]); @@ -3697,9 +3642,7 @@ class Calculation return $this->raiseFormulaError('Unable to access Cell Reference'); } $this->_debugLog->writeDebugLog('Evaluation Result for cell ', $cellRef, ' in worksheet ', $matches[2], ' is ', $this->showTypeDetails($cellValue)); -// $cellRef = $matches[2].'!'.$cellRef; } else { - // echo '$cellRef='.$cellRef.' in current worksheet
'; $this->_debugLog->writeDebugLog('Evaluating Cell ', $cellRef, ' in current worksheet'); if ($pCellParent->isDataSet($cellRef)) { $cellValue = $this->extractCellRange($cellRef, $pCellWorksheet, false); @@ -3715,7 +3658,6 @@ class Calculation // if the token is a function, pop arguments off the stack, hand them to the function, and push the result back on } elseif (preg_match('/^' . self::CALCULATION_REGEXP_FUNCTION . '$/i', $token, $matches)) { - // echo 'Token is a function
'; $functionName = $matches[1]; $argCount = $stack->pop(); $argCount = $argCount['value']; @@ -3733,7 +3675,6 @@ class Calculation $passCellReference = isset(self::$controlFunctions[$functionName]['passCellReference']); } // get the arguments for this function -// echo 'Function '.$functionName.' expects '.$argCount.' arguments
'; $args = $argArrayVals = []; for ($i = 0; $i < $argCount; ++$i) { $arg = $stack->pop(); @@ -3765,38 +3706,14 @@ class Calculation $args[] = $cellID; $argArrayVals[] = $this->showValue($cellID); } -// echo 'Arguments are: '; -// print_r($args); -// echo '
'; + if ($functionName != 'MKMATRIX') { if ($this->_debugLog->getWriteDebugLog()) { krsort($argArrayVals); $this->_debugLog->writeDebugLog('Evaluating ', self::localeFunc($functionName), '( ', implode(self::$localeArgumentSeparator . ' ', Calculation\Functions::flattenArray($argArrayVals)), ' )'); } } - // Process each argument in turn, building the return value as an array -// if (($argCount == 1) && (is_array($args[1])) && ($functionName != 'MKMATRIX')) { -// $operand1 = $args[1]; -// $this->_debugLog->writeDebugLog('Argument is a matrix: ', $this->showValue($operand1)); -// $result = array(); -// $row = 0; -// foreach($operand1 as $args) { -// if (is_array($args)) { -// foreach($args as $arg) { -// $this->_debugLog->writeDebugLog('Evaluating ', self::localeFunc($functionName), '( ', $this->showValue($arg), ' )'); -// $r = call_user_func_array($functionCall, $arg); -// $this->_debugLog->writeDebugLog('Evaluation Result for ', self::localeFunc($functionName), '() function call is ', $this->showTypeDetails($r)); -// $result[$row][] = $r; -// } -// ++$row; -// } else { -// $this->_debugLog->writeDebugLog('Evaluating ', self::localeFunc($functionName), '( ', $this->showValue($args), ' )'); -// $r = call_user_func_array($functionCall, $args); -// $this->_debugLog->writeDebugLog('Evaluation Result for ', self::localeFunc($functionName), '() function call is ', $this->showTypeDetails($r)); -// $result[] = $r; -// } -// } -// } else { + // Process the argument with the appropriate function call if ($passCellReference) { $args[] = $pCell; @@ -3819,17 +3736,13 @@ class Calculation // if the token is a number, boolean, string or an Excel error, push it onto the stack if (isset(self::$excelConstants[strtoupper($token)])) { $excelConstant = strtoupper($token); -// echo 'Token is a PhpSpreadsheet constant: '.$excelConstant.'
'; $stack->push('Constant Value', self::$excelConstants[$excelConstant]); $this->_debugLog->writeDebugLog('Evaluating Constant ', $excelConstant, ' as ', $this->showTypeDetails(self::$excelConstants[$excelConstant])); } elseif ((is_numeric($token)) || ($token === null) || (is_bool($token)) || ($token == '') || ($token{0} == '"') || ($token{0} == '#')) { - // echo 'Token is a number, boolean, string, null or an Excel error
'; $stack->push('Value', $token); // if the token is a named range, push the named range name onto the stack } elseif (preg_match('/^' . self::CALCULATION_REGEXP_NAMEDRANGE . '$/i', $token, $matches)) { - // echo 'Token is a named range
'; $namedRange = $matches[6]; -// echo 'Named Range is '.$namedRange.'
'; $this->_debugLog->writeDebugLog('Evaluating Named Range ', $namedRange); $cellValue = $this->extractNamedRange($namedRange, ((null !== $pCell) ? $pCellWorksheet : null), false); $pCell->attach($pCellParent); @@ -4130,16 +4043,10 @@ class Calculation // Return value $returnValue = []; -// echo 'extractCellRange('.$pRange.')', PHP_EOL; if ($pSheet !== null) { $pSheetName = $pSheet->getTitle(); -// echo 'Passed sheet name is '.$pSheetName.PHP_EOL; -// echo 'Range reference is '.$pRange.PHP_EOL; if (strpos($pRange, '!') !== false) { - // echo '$pRange reference includes sheet reference', PHP_EOL; list($pSheetName, $pRange) = Worksheet::extractSheetTitle($pRange, true); -// echo 'New sheet name is '.$pSheetName, PHP_EOL; -// echo 'Adjusted Range reference is '.$pRange, PHP_EOL; $pSheet = $this->spreadsheet->getSheetByName($pSheetName); } @@ -4187,16 +4094,10 @@ class Calculation // Return value $returnValue = []; -// echo 'extractNamedRange('.$pRange.')
'; if ($pSheet !== null) { $pSheetName = $pSheet->getTitle(); -// echo 'Current sheet name is '.$pSheetName.'
'; -// echo 'Range reference is '.$pRange.'
'; if (strpos($pRange, '!') !== false) { - // echo '$pRange reference includes sheet reference', PHP_EOL; list($pSheetName, $pRange) = Worksheet::extractSheetTitle($pRange, true); -// echo 'New sheet name is '.$pSheetName, PHP_EOL; -// echo 'Adjusted Range reference is '.$pRange, PHP_EOL; $pSheet = $this->spreadsheet->getSheetByName($pSheetName); } @@ -4204,7 +4105,6 @@ class Calculation $namedRange = NamedRange::resolveRange($pRange, $pSheet); if ($namedRange !== null) { $pSheet = $namedRange->getWorksheet(); -// echo 'Named Range '.$pRange.' ('; $pRange = $namedRange->getRange(); $splitRange = Cell::splitRange($pRange); // Convert row and column references @@ -4213,22 +4113,12 @@ class Calculation } elseif (ctype_digit($splitRange[0][0])) { $pRange = 'A' . $splitRange[0][0] . ':' . $namedRange->getWorksheet()->getHighestColumn() . $splitRange[0][1]; } -// echo $pRange.') is in sheet '.$namedRange->getWorksheet()->getTitle().'
'; - -// if ($pSheet->getTitle() != $namedRange->getWorksheet()->getTitle()) { -// if (!$namedRange->getLocalOnly()) { -// $pSheet = $namedRange->getWorksheet(); -// } else { -// return $returnValue; -// } -// } } else { return Calculation\Functions::REF(); } // Extract range $aReferences = Cell::extractAllCellReferencesInRange($pRange); -// var_dump($aReferences); if (!isset($aReferences[1])) { // Single cell (or single column or row) in range list($currentCol, $currentRow) = Cell::coordinateFromString($aReferences[0]); @@ -4243,7 +4133,6 @@ class Calculation foreach ($aReferences as $reference) { // Extract range list($currentCol, $currentRow) = Cell::coordinateFromString($reference); -// echo 'NAMED RANGE: $currentCol='.$currentCol.' $currentRow='.$currentRow.'
'; $cellValue = null; if ($pSheet->cellExists($reference)) { $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog); @@ -4252,8 +4141,6 @@ class Calculation } } } -// print_r($returnValue); -// echo '
'; } return $returnValue; diff --git a/src/PhpSpreadsheet/Calculation/MathTrig.php b/src/PhpSpreadsheet/Calculation/MathTrig.php index 98c31cee..186df4a6 100644 --- a/src/PhpSpreadsheet/Calculation/MathTrig.php +++ b/src/PhpSpreadsheet/Calculation/MathTrig.php @@ -661,8 +661,6 @@ class MathTrig return $matrixA->times($matrixB)->getArray(); } catch (\PhpSpreadsheet\Exception $ex) { - var_dump($ex->getMessage()); - return Functions::VALUE(); } } diff --git a/src/PhpSpreadsheet/Calculation/Statistical.php b/src/PhpSpreadsheet/Calculation/Statistical.php index c469cc3e..754644fe 100644 --- a/src/PhpSpreadsheet/Calculation/Statistical.php +++ b/src/PhpSpreadsheet/Calculation/Statistical.php @@ -1409,7 +1409,6 @@ class Statistical $PGuess = $UnscaledPGuess / $TotalUnscaledProbability; $CumPGuess = $UnscaledCumPGuess / $TotalUnscaledProbability; -// $CumPGuessMinus1 = $CumPGuess - $PGuess; $CumPGuessMinus1 = $CumPGuess - 1; while (true) { diff --git a/src/PhpSpreadsheet/Cell.php b/src/PhpSpreadsheet/Cell.php index 0e29cf7d..8f5ff4db 100644 --- a/src/PhpSpreadsheet/Cell.php +++ b/src/PhpSpreadsheet/Cell.php @@ -262,14 +262,11 @@ class Cell */ public function getCalculatedValue($resetLog = true) { - //echo 'Cell '.$this->getCoordinate().' value is a '.$this->dataType.' with a value of '.$this->getValue().PHP_EOL; if ($this->dataType == Cell\DataType::TYPE_FORMULA) { try { - //echo 'Cell value for '.$this->getCoordinate().' is a formula: Calculating value'.PHP_EOL; $result = Calculation::getInstance( $this->getWorksheet()->getParent() )->calculateCellValue($this, $resetLog); -//echo $this->getCoordinate().' calculation result is '.$result.PHP_EOL; // We don't yet handle array returns if (is_array($result)) { while (is_array($result)) { @@ -278,10 +275,8 @@ class Cell } } catch (Exception $ex) { if (($ex->getMessage() === 'Unable to access External Workbook') && ($this->calculatedValue !== null)) { - //echo 'Returning fallback value of '.$this->calculatedValue.' for cell '.$this->getCoordinate().PHP_EOL; return $this->calculatedValue; // Fallback for calculations referencing external files. } -//echo 'Calculation Exception: '.$ex->getMessage().PHP_EOL; $result = '#N/A'; throw new Calculation\Exception( $this->getWorksheet()->getTitle() . '!' . $this->getCoordinate() . ' -> ' . $ex->getMessage() @@ -289,16 +284,14 @@ class Cell } if ($result === '#Not Yet Implemented') { - //echo 'Returning fallback value of '.$this->calculatedValue.' for cell '.$this->getCoordinate().PHP_EOL; return $this->calculatedValue; // Fallback if calculation engine does not support the formula. } -//echo 'Returning calculated value of '.$result.' for cell '.$this->getCoordinate().PHP_EOL; + return $result; } elseif ($this->value instanceof RichText) { - // echo 'Cell value for '.$this->getCoordinate().' is rich text: Returning data value of '.$this->value.'
'; return $this->value->getPlainText(); } -// echo 'Cell value for '.$this->getCoordinate().' is not a formula: Returning data value of '.$this->value.'
'; + return $this->value; } diff --git a/src/PhpSpreadsheet/Chart/DataSeriesValues.php b/src/PhpSpreadsheet/Chart/DataSeriesValues.php index cb615624..1ab3140e 100644 --- a/src/PhpSpreadsheet/Chart/DataSeriesValues.php +++ b/src/PhpSpreadsheet/Chart/DataSeriesValues.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Chart; /** - * \PhpSpreadsheet\Chart\DataSeriesValues - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Chart/Layout.php b/src/PhpSpreadsheet/Chart/Layout.php index 530f17f8..f55c554e 100644 --- a/src/PhpSpreadsheet/Chart/Layout.php +++ b/src/PhpSpreadsheet/Chart/Layout.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Chart; /** - * \PhpSpreadsheet\Chart\Layout - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Chart/Legend.php b/src/PhpSpreadsheet/Chart/Legend.php index 999c3de4..9fb819ac 100644 --- a/src/PhpSpreadsheet/Chart/Legend.php +++ b/src/PhpSpreadsheet/Chart/Legend.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Chart; /** - * \PhpSpreadsheet\Chart\Legend - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Reader/Excel2003XML.php b/src/PhpSpreadsheet/Reader/Excel2003XML.php index 761b751d..0d59eeca 100644 --- a/src/PhpSpreadsheet/Reader/Excel2003XML.php +++ b/src/PhpSpreadsheet/Reader/Excel2003XML.php @@ -96,7 +96,6 @@ class Excel2003XML extends BaseReader implements IReader if (preg_match('//um', $data, $matches)) { $this->charSet = strtoupper($matches[1]); } -// echo 'Character Set is ', $this->charSet,'
'; return $valid; } @@ -404,15 +403,12 @@ class Excel2003XML extends BaseReader implements IReader foreach ($xml->Styles[0] as $style) { $style_ss = $style->attributes($namespaces['ss']); $styleID = (string) $style_ss['ID']; -// echo 'Style ID = '.$styleID.'
'; $this->styles[$styleID] = (isset($this->styles['Default'])) ? $this->styles['Default'] : []; foreach ($style as $styleType => $styleData) { $styleAttributes = $styleData->attributes($namespaces['ss']); -// echo $styleType.'
'; switch ($styleType) { case 'Alignment': foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { - // echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; $styleAttributeValue = (string) $styleAttributeValue; switch ($styleAttributeKey) { case 'Vertical': @@ -436,14 +432,11 @@ class Excel2003XML extends BaseReader implements IReader $borderAttributes = $borderStyle->attributes($namespaces['ss']); $thisBorder = []; foreach ($borderAttributes as $borderStyleKey => $borderStyleValue) { - // echo $borderStyleKey.' = '.$borderStyleValue.'
'; switch ($borderStyleKey) { case 'LineStyle': $thisBorder['style'] = \PhpSpreadsheet\Style\Border::BORDER_MEDIUM; -// $thisBorder['style'] = $borderStyleValue; break; case 'Weight': -// $thisBorder['style'] = $borderStyleValue; break; case 'Position': $borderPosition = strtolower($borderStyleValue); @@ -463,7 +456,6 @@ class Excel2003XML extends BaseReader implements IReader break; case 'Font': foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { - // echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; $styleAttributeValue = (string) $styleAttributeValue; switch ($styleAttributeKey) { case 'FontName': @@ -491,7 +483,6 @@ class Excel2003XML extends BaseReader implements IReader break; case 'Interior': foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { - // echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; switch ($styleAttributeKey) { case 'Color': $this->styles[$styleID]['fill']['color']['rgb'] = substr($styleAttributeValue, 1); @@ -501,7 +492,6 @@ class Excel2003XML extends BaseReader implements IReader break; case 'NumberFormat': foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { - // echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; $styleAttributeValue = str_replace($fromFormats, $toFormats, $styleAttributeValue); switch ($styleAttributeValue) { case 'Short Date': @@ -515,15 +505,11 @@ class Excel2003XML extends BaseReader implements IReader break; case 'Protection': foreach ($styleAttributes as $styleAttributeKey => $styleAttributeValue) { - // echo $styleAttributeKey.' = '.$styleAttributeValue.'
'; } break; } } -// print_r($this->styles[$styleID]); -// echo '
'; } -// echo '
'; $worksheetID = 0; $xml_ss = $xml->children($namespaces['ss']); @@ -536,8 +522,6 @@ class Excel2003XML extends BaseReader implements IReader continue; } -// echo '

Worksheet: ', $worksheet_ss['Name'],'

'; -// // Create new Worksheet $spreadsheet->createSheet(); $spreadsheet->setActiveSheetIndex($worksheetID); @@ -558,7 +542,6 @@ class Excel2003XML extends BaseReader implements IReader } if (isset($columnData_ss['Width'])) { $columnWidth = $columnData_ss['Width']; -// echo 'Setting column width for '.$columnID.' to '.$columnWidth.'
'; $spreadsheet->getActiveSheet()->getColumnDimension($columnID)->setWidth($columnWidth / 5.4); } ++$columnID; @@ -574,7 +557,6 @@ class Excel2003XML extends BaseReader implements IReader if (isset($row_ss['Index'])) { $rowID = (integer) $row_ss['Index']; } -// echo 'Row '.$rowID.'
'; $columnID = 'A'; foreach ($rowData->Cell as $cell) { @@ -611,7 +593,6 @@ class Excel2003XML extends BaseReader implements IReader // added this as a check for array formulas if (isset($cell_ss['ArrayRange'])) { $cellDataCSEFormula = $cell_ss['ArrayRange']; -// echo "found an array formula at ".$columnID.$rowID."
"; } $hasCalculatedValue = true; } @@ -657,12 +638,10 @@ class Excel2003XML extends BaseReader implements IReader } if ($hasCalculatedValue) { - // echo 'FORMULA
'; $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; $columnNumber = \PhpSpreadsheet\Cell::columnIndexFromString($columnID); if (substr($cellDataFormula, 0, 3) == 'of:') { $cellDataFormula = substr($cellDataFormula, 3); -// echo 'Before: ', $cellDataFormula,'
'; $temp = explode('"', $cellDataFormula); $key = false; foreach ($temp as &$value) { @@ -673,7 +652,6 @@ class Excel2003XML extends BaseReader implements IReader } } else { // Convert R1C1 style references to A1 style references (but only when not quoted) -// echo 'Before: ', $cellDataFormula,'
'; $temp = explode('"', $cellDataFormula); $key = false; foreach ($temp as &$value) { @@ -714,42 +692,29 @@ class Excel2003XML extends BaseReader implements IReader unset($value); // Then rebuild the formula string $cellDataFormula = implode('"', $temp); -// echo 'After: ', $cellDataFormula,'
'; } -// echo 'Cell '.$columnID.$rowID.' is a '.$type.' with a value of '.(($hasCalculatedValue) ? $cellDataFormula : $cellValue).'
'; -// $spreadsheet->getActiveSheet()->getCell($columnID . $rowID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $cellValue), $type); if ($hasCalculatedValue) { - // echo 'Formula result is '.$cellValue.'
'; $spreadsheet->getActiveSheet()->getCell($columnID . $rowID)->setCalculatedValue($cellValue); } $cellIsSet = $rowHasData = true; } if (isset($cell->Comment)) { - // echo 'comment found
'; $commentAttributes = $cell->Comment->attributes($namespaces['ss']); $author = 'unknown'; if (isset($commentAttributes->Author)) { $author = (string) $commentAttributes->Author; -// echo 'Author: ', $author,'
'; } $node = $cell->Comment->Data->asXML(); -// $annotation = str_replace('html:','',substr($node,49,-10)); -// echo $annotation,'
'; $annotation = strip_tags($node); -// echo 'Annotation: ', $annotation,'
'; $spreadsheet->getActiveSheet()->getComment($columnID . $rowID)->setAuthor(self::convertStringEncoding($author, $this->charSet))->setText($this->parseRichText($annotation)); } if (($cellIsSet) && (isset($cell_ss['StyleID']))) { $style = (string) $cell_ss['StyleID']; -// echo 'Cell style for '.$columnID.$rowID.' is '.$style.'
'; if ((isset($this->styles[$style])) && (!empty($this->styles[$style]))) { - // echo 'Cell '.$columnID.$rowID.'
'; -// print_r($this->styles[$style]); -// echo '
'; if (!$spreadsheet->getActiveSheet()->cellExists($columnID . $rowID)) { $spreadsheet->getActiveSheet()->getCell($columnID . $rowID)->setValue(null); } @@ -769,7 +734,6 @@ class Excel2003XML extends BaseReader implements IReader } if (isset($row_ss['Height'])) { $rowHeight = $row_ss['Height']; -// echo 'Setting row height to '.$rowHeight.'
'; $spreadsheet->getActiveSheet()->getRowDimension($rowID)->setRowHeight($rowHeight); } } diff --git a/src/PhpSpreadsheet/Reader/Excel2007.php b/src/PhpSpreadsheet/Reader/Excel2007.php index 5687ad57..2d40fde3 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007.php +++ b/src/PhpSpreadsheet/Reader/Excel2007.php @@ -259,7 +259,6 @@ class Excel2007 extends BaseReader implements IReader private static function castToBoolean($c) { - // echo 'Initial Cast to Boolean', PHP_EOL; $value = isset($c->v) ? (string) $c->v : null; if ($value == '0') { return false; @@ -274,44 +273,27 @@ class Excel2007 extends BaseReader implements IReader private static function castToError($c) { - // echo 'Initial Cast to Error', PHP_EOL; return isset($c->v) ? (string) $c->v : null; } private static function castToString($c) { - // echo 'Initial Cast to String, PHP_EOL; return isset($c->v) ? (string) $c->v : null; } private function castToFormula($c, $r, &$cellDataType, &$value, &$calculatedValue, &$sharedFormulas, $castBaseType) { - // echo 'Formula', PHP_EOL; -// echo '$c->f is ', $c->f, PHP_EOL; $cellDataType = 'f'; $value = "={$c->f}"; $calculatedValue = self::$castBaseType($c); // Shared formula? if (isset($c->f['t']) && strtolower((string) $c->f['t']) == 'shared') { - // echo 'SHARED FORMULA', PHP_EOL; $instance = (string) $c->f['si']; -// echo 'Instance ID = ', $instance, PHP_EOL; -// -// echo 'Shared Formula Array:', PHP_EOL; -// print_r($sharedFormulas); if (!isset($sharedFormulas[(string) $c->f['si']])) { - // echo 'SETTING NEW SHARED FORMULA', PHP_EOL; -// echo 'Master is ', $r, PHP_EOL; -// echo 'Formula is ', $value, PHP_EOL; $sharedFormulas[$instance] = ['master' => $r, 'formula' => $value]; -// echo 'New Shared Formula Array:', PHP_EOL; -// print_r($sharedFormulas); } else { - // echo 'GETTING SHARED FORMULA', PHP_EOL; -// echo 'Master is ', $sharedFormulas[$instance]['master'], PHP_EOL; -// echo 'Formula is ', $sharedFormulas[$instance]['formula'], PHP_EOL; $master = \PhpSpreadsheet\Cell::coordinateFromString($sharedFormulas[$instance]['master']); $current = \PhpSpreadsheet\Cell::coordinateFromString($r); @@ -320,7 +302,6 @@ class Excel2007 extends BaseReader implements IReader $difference[1] = $current[1] - $master[1]; $value = $this->referenceHelper->updateFormulaReferences($sharedFormulas[$instance]['formula'], 'A1', $difference[0], $difference[1]); -// echo 'Adjusted Formula is ', $value, PHP_EOL; } } } @@ -828,11 +809,7 @@ class Excel2007 extends BaseReader implements IReader if ($col['style'] && !$this->readDataOnly) { $docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setXfIndex(intval($col['style'])); } - if (self::boolean($col['bestFit'])) { - //$docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setAutoSize(true); - } if (self::boolean($col['hidden'])) { - // echo \PhpSpreadsheet\Cell::stringFromColumnIndex($i), ': HIDDEN COLUMN',PHP_EOL; $docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setVisible(false); } if (self::boolean($col['collapsed'])) { @@ -898,15 +875,9 @@ class Excel2007 extends BaseReader implements IReader } } - // echo 'Reading cell ', $coordinates[0], $coordinates[1], PHP_EOL; - // print_r($c); - // echo PHP_EOL; - // echo 'Cell Data Type is ', $cellDataType, ': '; - // // Read cell! switch ($cellDataType) { case 's': - // echo 'String', PHP_EOL; if ((string) $c->v != '') { $value = $sharedStrings[intval($c->v)]; @@ -918,7 +889,6 @@ class Excel2007 extends BaseReader implements IReader } break; case 'b': - // echo 'Boolean', PHP_EOL; if (!isset($c->f)) { $value = self::castToBoolean($c); } else { @@ -929,11 +899,9 @@ class Excel2007 extends BaseReader implements IReader $att = $c->f; $docSheet->getCell($r)->setFormulaAttributes($att); } - // echo '$calculatedValue = ', $calculatedValue, PHP_EOL; } break; case 'inlineStr': -// echo 'Inline String', PHP_EOL; if (isset($c->f)) { $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); } else { @@ -941,29 +909,22 @@ class Excel2007 extends BaseReader implements IReader } break; case 'e': - // echo 'Error', PHP_EOL; if (!isset($c->f)) { $value = self::castToError($c); } else { // Formula $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToError'); - // echo '$calculatedValue = ', $calculatedValue, PHP_EOL; } break; default: -// echo 'Default', PHP_EOL; if (!isset($c->f)) { - // echo 'Not a Formula', PHP_EOL; $value = self::castToString($c); } else { - // echo 'Treat as Formula', PHP_EOL; // Formula $this->castToFormula($c, $r, $cellDataType, $value, $calculatedValue, $sharedFormulas, 'castToString'); - // echo '$calculatedValue = ', $calculatedValue, PHP_EOL; } break; } - // echo 'Value is ', $value, PHP_EOL; // Check for numeric values if (is_numeric($value) && $cellDataType != 's') { @@ -1870,15 +1831,10 @@ class Excel2007 extends BaseReader implements IReader ); $objChart = \PhpSpreadsheet\Reader\Excel2007\Chart::readChart($chartElements, basename($chartEntryRef, '.xml')); -// echo 'Chart ', $chartEntryRef, '
'; -// var_dump($charts[$chartEntryRef]); // if (isset($charts[$chartEntryRef])) { $chartPositionRef = $charts[$chartEntryRef]['sheet'] . '!' . $charts[$chartEntryRef]['id']; -// echo 'Position Ref ', $chartPositionRef, '
'; if (isset($chartDetails[$chartPositionRef])) { - // var_dump($chartDetails[$chartPositionRef]); - $excel->getSheetByName($charts[$chartEntryRef]['sheet'])->addChart($objChart); $objChart->setWorksheet($excel->getSheetByName($charts[$chartEntryRef]['sheet'])); $objChart->setTopLeftPosition($chartDetails[$chartPositionRef]['fromCoordinate'], $chartDetails[$chartPositionRef]['fromOffsetX'], $chartDetails[$chartPositionRef]['fromOffsetY']); @@ -1925,14 +1881,7 @@ class Excel2007 extends BaseReader implements IReader */ private static function readStyle($docStyle, \PhpSpreadsheet\Style $style) { - // format code -// if (isset($style->numFmt)) { -// if (isset($style->numFmt['formatCode'])) { -// $docStyle->getNumberFormat()->setFormatCode((string) $style->numFmt['formatCode']); -// } else { - $docStyle->getNumberFormat()->setFormatCode($style->numFmt); -// } -// } + $docStyle->getNumberFormat()->setFormatCode($style->numFmt); // font if (isset($style->font)) { diff --git a/src/PhpSpreadsheet/Reader/Excel2007/Chart.php b/src/PhpSpreadsheet/Reader/Excel2007/Chart.php index ccb7ca5a..3f8a3f1f 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007/Chart.php +++ b/src/PhpSpreadsheet/Reader/Excel2007/Chart.php @@ -240,7 +240,6 @@ class Chart } $layout = []; foreach ($details as $detailKey => $detail) { - // echo $detailKey, ' => ',self::getAttribute($detail, 'val', 'string'),PHP_EOL; $layout[$detailKey] = self::getAttribute($detail, 'val', 'string'); } diff --git a/src/PhpSpreadsheet/Reader/Excel5.php b/src/PhpSpreadsheet/Reader/Excel5.php index bc169dab..cd859d13 100644 --- a/src/PhpSpreadsheet/Reader/Excel5.php +++ b/src/PhpSpreadsheet/Reader/Excel5.php @@ -991,10 +991,6 @@ class Excel5 extends BaseReader implements IReader // treat OBJ records foreach ($this->objs as $n => $obj) { - // echo '
Object reference is ', $n,'
'; -// var_dump($obj); -// echo '
'; - // the first shape container never has a corresponding OBJ record, hence $n + 1 if (isset($allSpContainers[$n + 1]) && is_object($allSpContainers[$n + 1])) { $spContainer = $allSpContainers[$n + 1]; @@ -1023,8 +1019,6 @@ class Excel5 extends BaseReader implements IReader switch ($obj['otObjType']) { case 0x19: // Note -// echo 'Cell Annotation Object
'; -// echo 'Object ID is ', $obj['idObjID'],'
'; if (isset($this->cellNotes[$obj['idObjID']])) { $cellNote = $this->cellNotes[$obj['idObjID']]; @@ -1035,7 +1029,6 @@ class Excel5 extends BaseReader implements IReader } break; case 0x08: -// echo 'Picture Object
'; // picture // get index to BSE entry (1-based) $BSEindex = $spContainer->getOPT(0x0104); @@ -1099,9 +1092,6 @@ class Excel5 extends BaseReader implements IReader $noteDetails['objTextData']['text'] = ''; } } -// echo 'Cell annotation ', $note,'
'; -// var_dump($noteDetails); -// echo '
'; $cellAddress = str_replace('$', '', $noteDetails['cellRef']); $this->phpSheet->getComment($cellAddress)->setAuthor($noteDetails['author'])->setText($this->parseRichText($noteDetails['objTextData']['text'])); } @@ -1275,8 +1265,6 @@ class Excel5 extends BaseReader implements IReader $this->summaryInformation = $ole->getStream($ole->summaryInformation); // Get additional document summary information data $this->documentSummaryInformation = $ole->getStream($ole->documentSummaryInformation); - // Get user-defined property data -// $this->userDefinedProperties = $ole->getUserDefinedProperties(); } /** @@ -1429,21 +1417,17 @@ class Excel5 extends BaseReader implements IReader // offset: 8; size: 16 // offset: 24; size: 4; section count $secCount = self::getInt4d($this->documentSummaryInformation, 24); -// echo '$secCount = ', $secCount,'
'; // offset: 28; size: 16; first section's class id: 02 d5 cd d5 9c 2e 1b 10 93 97 08 00 2b 2c f9 ae // offset: 44; size: 4; first section offset $secOffset = self::getInt4d($this->documentSummaryInformation, 44); -// echo '$secOffset = ', $secOffset,'
'; // section header // offset: $secOffset; size: 4; section length $secLength = self::getInt4d($this->documentSummaryInformation, $secOffset); -// echo '$secLength = ', $secLength,'
'; // offset: $secOffset+4; size: 4; property count $countProperties = self::getInt4d($this->documentSummaryInformation, $secOffset + 4); -// echo '$countProperties = ', $countProperties,'
'; // initialize code page (used to resolve string values) $codePage = 'CP1252'; @@ -1451,17 +1435,14 @@ class Excel5 extends BaseReader implements IReader // offset: ($secOffset+8); size: var // loop through property decarations and properties for ($i = 0; $i < $countProperties; ++$i) { - // echo 'Property ', $i,'
'; // offset: ($secOffset+8) + (8 * $i); size: 4; property ID $id = self::getInt4d($this->documentSummaryInformation, ($secOffset + 8) + (8 * $i)); -// echo 'ID is ', $id,'
'; // Use value of property id as appropriate // offset: 60 + 8 * $i; size: 4; offset from beginning of section (48) $offset = self::getInt4d($this->documentSummaryInformation, ($secOffset + 12) + (8 * $i)); $type = self::getInt4d($this->documentSummaryInformation, $secOffset + $offset); -// echo 'Type is ', $type,', '; // initialize property value $value = null; @@ -1555,7 +1536,6 @@ class Excel5 extends BaseReader implements IReader private function readDefault() { $length = self::getInt2d($this->data, $this->pos + 2); -// $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); // move stream pointer to next record $this->pos += 4 + $length; @@ -1567,7 +1547,6 @@ class Excel5 extends BaseReader implements IReader */ private function readNote() { - // echo 'Read Cell Annotation
'; $length = self::getInt2d($this->data, $this->pos + 2); $recordData = $this->readRecordData($this->data, $this->pos + 4, $length); @@ -1583,10 +1562,6 @@ class Excel5 extends BaseReader implements IReader $noteObjID = self::getInt2d($recordData, 6); $noteAuthor = self::readUnicodeStringLong(substr($recordData, 8)); $noteAuthor = $noteAuthor['value']; -// echo 'Note Address=', $cellAddress,'
'; -// echo 'Note Object ID=', $noteObjID,'
'; -// echo 'Note Author=', $noteAuthor,'
'; -// $this->cellNotes[$noteObjID] = [ 'cellRef' => $cellAddress, 'objectID' => $noteObjID, @@ -1602,13 +1577,10 @@ class Excel5 extends BaseReader implements IReader $extension = true; $cellAddress = array_pop(array_keys($this->phpSheet->getComments())); } -// echo 'Note Address=', $cellAddress,'
'; $cellAddress = str_replace('$', '', $cellAddress); $noteLength = self::getInt2d($recordData, 4); $noteText = trim(substr($recordData, 6)); -// echo 'Note Length=', $noteLength,'
'; -// echo 'Note Text=', $noteText,'
'; if ($extension) { // Concatenate this extension with the currently set comment for the cell @@ -1656,10 +1628,6 @@ class Excel5 extends BaseReader implements IReader 'alignment' => $grbitOpts, 'rotation' => $rot, ]; - -// echo '_readTextObject()
'; -// var_dump($this->textObjects[$this->textObjRef]); -// echo '
'; } /** @@ -4192,10 +4160,6 @@ class Excel5 extends BaseReader implements IReader 'grbitOpts' => $grbitOpts, ]; $this->textObjRef = $idObjID; - -// echo '_readObj()
'; -// var_dump(end($this->objs)); -// echo '
'; } /** @@ -4280,8 +4244,6 @@ class Excel5 extends BaseReader implements IReader // move stream pointer to next record $this->pos += 4 + $length; - //var_dump(unpack("vrt/vgrbitFrt/V2reserved/vwScalePLV/vgrbit", $recordData)); - // offset: 0; size: 2; rt //->ignore $rt = self::getInt2d($recordData, 0); @@ -5057,22 +5019,18 @@ class Excel5 extends BaseReader implements IReader // 1. BITMAPCOREHEADER // offset: 0; size: 4; bcSize, Specifies the number of bytes required by the structure $bcSize = self::getInt4d($iData, 0); - // var_dump($bcSize); // offset: 4; size: 2; bcWidth, specifies the width of the bitmap, in pixels $bcWidth = self::getInt2d($iData, 4); - // var_dump($bcWidth); // offset: 6; size: 2; bcHeight, specifies the height of the bitmap, in pixels. $bcHeight = self::getInt2d($iData, 6); - // var_dump($bcHeight); $ih = imagecreatetruecolor($bcWidth, $bcHeight); // offset: 8; size: 2; bcPlanes, specifies the number of planes for the target device. This value must be 1 // offset: 10; size: 2; bcBitCount specifies the number of bits-per-pixel. This value must be 1, 4, 8, or 24 $bcBitCount = self::getInt2d($iData, 10); - // var_dump($bcBitCount); $rgbString = substr($iData, 12); $rgbTriples = []; @@ -5205,21 +5163,9 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: sz $formulaData = substr($formulaStructure, 2, $sz); - // for debug: dump the formula data - //echo ''; - //echo 'size: ' . $sz . "\n"; - //echo 'the entire formula data: '; - //Debug::dump($formulaData); - //echo "\n----\n"; - // offset: 2 + sz; size: variable (optional) if (strlen($formulaStructure) > 2 + $sz) { $additionalData = substr($formulaStructure, 2 + $sz); - - // for debug: dump the additional data - //echo 'the entire additional data: '; - //Debug::dump($additionalData); - //echo "\n----\n"; } else { $additionalData = ''; } @@ -5243,9 +5189,6 @@ class Excel5 extends BaseReader implements IReader while (strlen($formulaData) > 0 and $token = $this->getNextToken($formulaData, $baseCell)) { $tokens[] = $token; $formulaData = substr($formulaData, $token['size']); - - // for debug: dump the token - //var_dump($token); } $formulaString = $this->createFormulaFromTokens($tokens, $additionalData); @@ -5408,10 +5351,6 @@ class Excel5 extends BaseReader implements IReader } $formulaString = $formulaStrings[0]; - // for debug: dump the human readable formula - //echo '----' . "\n"; - //echo 'Formula: ' . $formulaString; - return $formulaString; } diff --git a/src/PhpSpreadsheet/Reader/Exception.php b/src/PhpSpreadsheet/Reader/Exception.php index 9b482a33..7212d8cd 100644 --- a/src/PhpSpreadsheet/Reader/Exception.php +++ b/src/PhpSpreadsheet/Reader/Exception.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Reader; /** - * \PhpSpreadsheet\Reader\Exception - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index c5df14f2..33b45d61 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -218,15 +218,9 @@ class Gnumeric extends BaseReader implements IReader $gFileData = $this->gzfileGetContents($pFilename); -// echo '<pre>'; -// echo htmlentities($gFileData,ENT_QUOTES,'UTF-8'); -// echo '</pre><hr />'; -// $xml = simplexml_load_string($this->securityScan($gFileData), 'SimpleXMLElement', \PhpSpreadsheet\Settings::getLibXmlLoaderOptions()); $namespacesMeta = $xml->getNamespaces(true); -// var_dump($namespacesMeta); -// $gnmXML = $xml->children($namespacesMeta['gnm']); $docProps = $spreadsheet->getProperties(); @@ -335,7 +329,6 @@ class Gnumeric extends BaseReader implements IReader $worksheetID = 0; foreach ($gnmXML->Sheets->Sheet as $sheet) { $worksheetName = (string) $sheet->Name; -// echo '<b>Worksheet: ', $worksheetName,'</b><br />'; if ((isset($this->loadSheetsOnly)) && (!in_array($worksheetName, $this->loadSheetsOnly))) { continue; } @@ -407,9 +400,6 @@ class Gnumeric extends BaseReader implements IReader $ValueType = $cellAttributes->ValueType; $ExprID = (string) $cellAttributes->ExprID; -// echo 'Cell ', $column, $row,'<br />'; -// echo 'Type is ', $ValueType,'<br />'; -// echo 'Value is ', $cell,'<br />'; $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; if ($ExprID > '') { if (((string) $cell) > '') { @@ -418,7 +408,6 @@ class Gnumeric extends BaseReader implements IReader 'row' => $cellAttributes->Row, 'formula' => (string) $cell, ]; -// echo 'NEW EXPRESSION ', $ExprID,'<br />'; } else { $expression = $this->expressions[$ExprID]; @@ -429,8 +418,6 @@ class Gnumeric extends BaseReader implements IReader $cellAttributes->Row - $expression['row'], $worksheetName ); -// echo 'SHARED EXPRESSION ', $ExprID,'<br />'; -// echo 'New Value is ', $cell,'<br />'; } $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; } else { @@ -470,8 +457,6 @@ class Gnumeric extends BaseReader implements IReader } } } -// echo '$maxCol=', $maxCol,'; $maxRow=', $maxRow,'<br />'; -// foreach ($sheet->Styles->StyleRegion as $styleRegion) { $styleAttributes = $styleRegion->attributes(); if (($styleAttributes['startRow'] <= $maxRow) && @@ -484,11 +469,8 @@ class Gnumeric extends BaseReader implements IReader $endRow = ($styleAttributes['endRow'] > $maxRow) ? $maxRow : $styleAttributes['endRow']; $endRow += 1; $cellRange = $startColumn . $startRow . ':' . $endColumn . $endRow; -// echo $cellRange,'<br />'; $styleAttributes = $styleRegion->Style->attributes(); -// var_dump($styleAttributes); -// echo '<br />'; // We still set the number format mask for date/time values, even if readDataOnly is true if ((!$this->readDataOnly) || @@ -611,8 +593,6 @@ class Gnumeric extends BaseReader implements IReader } $fontAttributes = $styleRegion->Style->Font->attributes(); -// var_dump($fontAttributes); -// echo '<br />'; $styleArray['font']['name'] = (string) $styleRegion->Style->Font; $styleArray['font']['size'] = intval($fontAttributes['Unit']); $styleArray['font']['bold'] = ($fontAttributes['Bold'] == '1') ? true : false; @@ -673,8 +653,6 @@ class Gnumeric extends BaseReader implements IReader $hyperlink = $styleRegion->Style->HyperLink->attributes(); } } -// var_dump($styleArray); -// echo '<br />'; $spreadsheet->getActiveSheet()->getStyle($cellRange)->applyFromArray($styleArray); } } diff --git a/src/PhpSpreadsheet/Reader/HTML.php b/src/PhpSpreadsheet/Reader/HTML.php index de49a858..77920722 100644 --- a/src/PhpSpreadsheet/Reader/HTML.php +++ b/src/PhpSpreadsheet/Reader/HTML.php @@ -208,7 +208,6 @@ class HTML extends BaseReader implements IReader // Simple String content if (trim($cellContent) > '') { // Only actually write it if there's content in the string -// echo 'FLUSH CELL: ' , $column , $row , ' => ' , $cellContent , '<br />'; // Write to worksheet to be done here... // ... we return the cell so we can mess about with styles more easily $sheet->setCellValue($column . $row, $cellContent, true); @@ -242,11 +241,8 @@ class HTML extends BaseReader implements IReader // TODO } } elseif ($child instanceof DOMElement) { - // echo '<b>DOM ELEMENT: </b>' , strtoupper($child->nodeName) , '<br />'; - $attributeArray = []; foreach ($child->attributes as $attribute) { - // echo '<b>ATTRIBUTE: </b>' , $attribute->name , ' => ' , $attribute->value , '<br />'; $attributeArray[$attribute->name] = $attribute->value; } @@ -274,7 +270,6 @@ class HTML extends BaseReader implements IReader case 'em': case 'strong': case 'b': -// echo 'STYLING, SPAN OR DIV<br />'; if ($cellContent > '') { $cellContent .= ' '; } @@ -282,7 +277,6 @@ class HTML extends BaseReader implements IReader if ($cellContent > '') { $cellContent .= ' '; } -// echo 'END OF STYLING, SPAN OR DIV<br />'; break; case 'hr': $this->flushCell($sheet, $column, $row, $cellContent); @@ -304,14 +298,11 @@ class HTML extends BaseReader implements IReader $this->flushCell($sheet, $column, $row, $cellContent); ++$row; } -// echo 'HARD LINE BREAK: ' , '<br />'; break; case 'a': -// echo 'START OF HYPERLINK: ' , '<br />'; foreach ($attributeArray as $attributeName => $attributeValue) { switch ($attributeName) { case 'href': -// echo 'Link to ' , $attributeValue , '<br />'; $sheet->getCell($column . $row)->getHyperlink()->setUrl($attributeValue); if (isset($this->formats[$child->nodeName])) { $sheet->getStyle($column . $row)->applyFromArray($this->formats[$child->nodeName]); @@ -321,7 +312,6 @@ class HTML extends BaseReader implements IReader } $cellContent .= ' '; $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF HYPERLINK:' , '<br />'; break; case 'h1': case 'h2': @@ -335,17 +325,13 @@ class HTML extends BaseReader implements IReader if ($this->tableLevel > 0) { // If we're inside a table, replace with a \n $cellContent .= "\n"; -// echo 'LIST ENTRY: ' , '<br />'; $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF LIST ENTRY:' , '<br />'; } else { if ($cellContent > '') { $this->flushCell($sheet, $column, $row, $cellContent); ++$row; } -// echo 'START OF PARAGRAPH: ' , '<br />'; $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF PARAGRAPH:' , '<br />'; $this->flushCell($sheet, $column, $row, $cellContent); if (isset($this->formats[$child->nodeName])) { @@ -360,17 +346,13 @@ class HTML extends BaseReader implements IReader if ($this->tableLevel > 0) { // If we're inside a table, replace with a \n $cellContent .= "\n"; -// echo 'LIST ENTRY: ' , '<br />'; $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF LIST ENTRY:' , '<br />'; } else { if ($cellContent > '') { $this->flushCell($sheet, $column, $row, $cellContent); } ++$row; -// echo 'LIST ENTRY: ' , '<br />'; $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF LIST ENTRY:' , '<br />'; $this->flushCell($sheet, $column, $row, $cellContent); $column = 'A'; } @@ -378,12 +360,10 @@ class HTML extends BaseReader implements IReader case 'table': $this->flushCell($sheet, $column, $row, $cellContent); $column = $this->setTableStartColumn($column); -// echo 'START OF TABLE LEVEL ' , $this->tableLevel , '<br />'; if ($this->tableLevel > 1) { --$row; } $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF TABLE LEVEL ' , $this->tableLevel , '<br />'; $column = $this->releaseTableStartColumn(); if ($this->tableLevel > 1) { ++$column; @@ -398,16 +378,12 @@ class HTML extends BaseReader implements IReader case 'tr': $column = $this->getTableStartColumn(); $cellContent = ''; -// echo 'START OF TABLE ' , $this->tableLevel , ' ROW<br />'; $this->processDomElement($child, $sheet, $row, $column, $cellContent); ++$row; -// echo 'END OF TABLE ' , $this->tableLevel , ' ROW<br />'; break; case 'th': case 'td': -// echo 'START OF TABLE ' , $this->tableLevel , ' CELL<br />'; $this->processDomElement($child, $sheet, $row, $column, $cellContent); -// echo 'END OF TABLE ' , $this->tableLevel , ' CELL<br />'; while (isset($this->rowspan[$column . $row])) { ++$column; @@ -415,14 +391,6 @@ class HTML extends BaseReader implements IReader $this->flushCell($sheet, $column, $row, $cellContent); -// if (isset($attributeArray['style']) && !empty($attributeArray['style'])) { -// $styleAry = $this->getPhpSpreadsheetStyleArray($attributeArray['style']); -// -// if (!empty($styleAry)) { -// $sheet->getStyle($column . $row)->applyFromArray($styleAry); -// } -// } - if (isset($attributeArray['rowspan']) && isset($attributeArray['colspan'])) { //create merging rowspan and colspan $columnTo = $column; diff --git a/src/PhpSpreadsheet/Reader/OOCalc.php b/src/PhpSpreadsheet/Reader/OOCalc.php index 3162c225..92a49fe3 100644 --- a/src/PhpSpreadsheet/Reader/OOCalc.php +++ b/src/PhpSpreadsheet/Reader/OOCalc.php @@ -242,41 +242,6 @@ class OOCalc extends BaseReader implements IReader $worksheetInfo[] = $tmpInfo; } } - -// foreach ($workbookData->table as $worksheetDataSet) { -// $worksheetData = $worksheetDataSet->children($namespacesContent['table']); -// $worksheetDataAttributes = $worksheetDataSet->attributes($namespacesContent['table']); -// -// $rowIndex = 0; -// foreach ($worksheetData as $key => $rowData) { -// switch ($key) { -// case 'table-row' : -// $rowDataTableAttributes = $rowData->attributes($namespacesContent['table']); -// $rowRepeats = (isset($rowDataTableAttributes['number-rows-repeated'])) ? -// $rowDataTableAttributes['number-rows-repeated'] : 1; -// $columnIndex = 0; -// -// foreach ($rowData as $key => $cellData) { -// $cellDataTableAttributes = $cellData->attributes($namespacesContent['table']); -// $colRepeats = (isset($cellDataTableAttributes['number-columns-repeated'])) ? -// $cellDataTableAttributes['number-columns-repeated'] : 1; -// $cellDataOfficeAttributes = $cellData->attributes($namespacesContent['office']); -// if (isset($cellDataOfficeAttributes['value-type'])) { -// $tmpInfo['lastColumnIndex'] = max($tmpInfo['lastColumnIndex'], $columnIndex + $colRepeats - 1); -// $tmpInfo['totalRows'] = max($tmpInfo['totalRows'], $rowIndex + $rowRepeats); -// } -// $columnIndex += $colRepeats; -// } -// $rowIndex += $rowRepeats; -// break; -// } -// } -// -// $tmpInfo['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); -// $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; -// -// } -// } } return $worksheetInfo; @@ -337,16 +302,12 @@ class OOCalc extends BaseReader implements IReader throw new Exception('Could not open ' . $pFilename . ' for reading! Error opening file.'); } -// echo '<h1>Meta Information</h1>'; $xml = simplexml_load_string( $this->securityScan($zip->getFromName('meta.xml')), 'SimpleXMLElement', \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespacesMeta = $xml->getNamespaces(true); -// echo '<pre>'; -// print_r($namespacesMeta); -// echo '</pre><hr />'; $docProps = $spreadsheet->getProperties(); $officeProperty = $xml->children($namespacesMeta['office']); @@ -426,16 +387,12 @@ class OOCalc extends BaseReader implements IReader } } -// echo '<h1>Workbook Content</h1>'; $xml = simplexml_load_string( $this->securityScan($zip->getFromName('content.xml')), 'SimpleXMLElement', \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespacesContent = $xml->getNamespaces(true); -// echo '<pre>'; -// print_r($namespacesContent); -// echo '</pre><hr />'; $workbook = $xml->children($namespacesContent['office']); foreach ($workbook->body->spreadsheet as $workbookData) { @@ -443,17 +400,12 @@ class OOCalc extends BaseReader implements IReader $worksheetID = 0; foreach ($workbookData->table as $worksheetDataSet) { $worksheetData = $worksheetDataSet->children($namespacesContent['table']); -// print_r($worksheetData); -// echo '<br />'; $worksheetDataAttributes = $worksheetDataSet->attributes($namespacesContent['table']); -// print_r($worksheetDataAttributes); -// echo '<br />'; if ((isset($this->loadSheetsOnly)) && (isset($worksheetDataAttributes['name'])) && (!in_array($worksheetDataAttributes['name'], $this->loadSheetsOnly))) { continue; } -// echo '<h2>Worksheet '.$worksheetDataAttributes['name'].'</h2>'; // Create new Worksheet $spreadsheet->createSheet(); $spreadsheet->setActiveSheetIndex($worksheetID); @@ -467,7 +419,6 @@ class OOCalc extends BaseReader implements IReader $rowID = 1; foreach ($worksheetData as $key => $rowData) { - // echo '<b>'.$key.'</b><br />'; switch ($key) { case 'table-header-rows': foreach ($rowData as $keyRowData => $cellData) { @@ -486,20 +437,11 @@ class OOCalc extends BaseReader implements IReader } } -// echo '<b>'.$columnID.$rowID.'</b><br />'; $cellDataText = (isset($namespacesContent['text'])) ? $cellData->children($namespacesContent['text']) : ''; $cellDataOffice = $cellData->children($namespacesContent['office']); $cellDataOfficeAttributes = $cellData->attributes($namespacesContent['office']); $cellDataTableAttributes = $cellData->attributes($namespacesContent['table']); -// echo 'Office Attributes: '; -// print_r($cellDataOfficeAttributes); -// echo '<br />Table Attributes: '; -// print_r($cellDataTableAttributes); -// echo '<br />Cell Data Text'; -// print_r($cellDataText); -// echo '<br />'; -// $type = $formatting = $hyperlink = null; $hasCalculatedValue = false; $cellDataFormula = ''; @@ -509,7 +451,6 @@ class OOCalc extends BaseReader implements IReader } if (isset($cellDataOffice->annotation)) { - // echo 'Cell has comment<br />'; $annotationText = $cellDataOffice->annotation->children($namespacesContent['text']); $textArray = []; foreach ($annotationText as $t) { @@ -522,7 +463,6 @@ class OOCalc extends BaseReader implements IReader } } $text = implode("\n", $textArray); -// echo $text, '<br />'; $spreadsheet->getActiveSheet()->getComment($columnID . $rowID)->setText($this->parseRichText($text)); // ->setAuthor( $author ) } @@ -548,7 +488,6 @@ class OOCalc extends BaseReader implements IReader } $allCellDataText = implode($dataArray, "\n"); -// echo 'Value Type is '.$cellDataOfficeAttributes['value-type'].'<br />'; switch ($cellDataOfficeAttributes['value-type']) { case 'string': $type = \PhpSpreadsheet\Cell\DataType::TYPE_STRING; @@ -608,10 +547,6 @@ class OOCalc extends BaseReader implements IReader $formatting = \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4; break; } -// echo 'Data value is '.$dataValue.'<br />'; -// if ($hyperlink !== null) { -// echo 'Hyperlink is '.$hyperlink.'<br />'; -// } } else { $type = \PhpSpreadsheet\Cell\DataType::TYPE_NULL; $dataValue = null; @@ -619,7 +554,6 @@ class OOCalc extends BaseReader implements IReader if ($hasCalculatedValue) { $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; -// echo 'Formula: ', $cellDataFormula, PHP_EOL; $cellDataFormula = substr($cellDataFormula, strpos($cellDataFormula, ':=') + 1); $temp = explode('"', $cellDataFormula); $tKey = false; @@ -636,7 +570,6 @@ class OOCalc extends BaseReader implements IReader unset($value); // Then rebuild the formula string $cellDataFormula = implode('"', $temp); -// echo 'Adjusted Formula: ', $cellDataFormula, PHP_EOL; } $colRepeats = (isset($cellDataTableAttributes['number-columns-repeated'])) ? $cellDataTableAttributes['number-columns-repeated'] : 1; @@ -650,7 +583,6 @@ class OOCalc extends BaseReader implements IReader $rID = $rowID + $rowAdjust; $spreadsheet->getActiveSheet()->getCell($columnID . $rID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $dataValue), $type); if ($hasCalculatedValue) { - // echo 'Forumla result is '.$dataValue.'<br />'; $spreadsheet->getActiveSheet()->getCell($columnID . $rID)->setCalculatedValue($dataValue); } if ($formatting !== null) { diff --git a/src/PhpSpreadsheet/Shared/CodePage.php b/src/PhpSpreadsheet/Shared/CodePage.php index 4c7f8fad..4acac50a 100644 --- a/src/PhpSpreadsheet/Shared/CodePage.php +++ b/src/PhpSpreadsheet/Shared/CodePage.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared; /** - * \PhpSpreadsheet\Shared\CodePage - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Shared/Date.php b/src/PhpSpreadsheet/Shared/Date.php index 1a6858ff..f5333aa1 100644 --- a/src/PhpSpreadsheet/Shared/Date.php +++ b/src/PhpSpreadsheet/Shared/Date.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared; /** - * \PhpSpreadsheet\Shared\Date - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Shared/File.php b/src/PhpSpreadsheet/Shared/File.php index a50c4ec2..ebb0e7f3 100644 --- a/src/PhpSpreadsheet/Shared/File.php +++ b/src/PhpSpreadsheet/Shared/File.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared; /** - * \PhpSpreadsheet\Shared\File - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Shared/Font.php b/src/PhpSpreadsheet/Shared/Font.php index 8c690066..3c029ac0 100644 --- a/src/PhpSpreadsheet/Shared/Font.php +++ b/src/PhpSpreadsheet/Shared/Font.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared; /** - * \PhpSpreadsheet\Shared\Font - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -309,13 +307,9 @@ class Font // Get corners positions $lowerLeftCornerX = $textBox[0]; -// $lowerLeftCornerY = $textBox[1]; $lowerRightCornerX = $textBox[2]; -// $lowerRightCornerY = $textBox[3]; $upperRightCornerX = $textBox[4]; -// $upperRightCornerY = $textBox[5]; $upperLeftCornerX = $textBox[6]; -// $upperLeftCornerY = $textBox[7]; // Consider the rotation when calculating the width $textWidth = max($lowerRightCornerX - $upperLeftCornerX, $upperRightCornerX - $lowerLeftCornerX); @@ -345,8 +339,6 @@ class Font break; case 'Arial': - // value 7 was found via interpolation by inspecting real Excel files with Arial 10 font. -// $columnWidth = (int) (7 * String::countCharacters($columnText)); // value 8 was set because of experience in different exports at Arial 10 font. $columnWidth = (int) (8 * StringHelper::countCharacters($columnText)); $columnWidth = $columnWidth * $fontSize / 10; // extrapolate from font size diff --git a/src/PhpSpreadsheet/Shared/OLE.php b/src/PhpSpreadsheet/Shared/OLE.php index 6ab91c62..8c159b52 100644 --- a/src/PhpSpreadsheet/Shared/OLE.php +++ b/src/PhpSpreadsheet/Shared/OLE.php @@ -20,7 +20,6 @@ namespace PhpSpreadsheet\Shared; // | Based on OLE::Storage_Lite by Kawai, Takanori | // +----------------------------------------------------------------------+ // -// $Id: OLE.php,v 1.13 2007/03/07 14:38:25 schmidt Exp $ /* * Array for storing OLE instances that are accessed from @@ -156,8 +155,7 @@ class OLE $pos = $this->_getBlockOffset(self::_readInt4($fh)); } - // Read Big Block Allocation Table according to chain specified by - // $mbatBlocks + // Read Big Block Allocation Table according to chain specified by $mbatBlocks for ($i = 0; $i < $bbatBlockCount; ++$i) { $pos = $this->_getBlockOffset($mbatBlocks[$i]); fseek($fh, $pos); diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS.php b/src/PhpSpreadsheet/Shared/OLE/PPS.php index b2091049..46b00e70 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS.php @@ -20,7 +20,6 @@ namespace PhpSpreadsheet\Shared\OLE; // | Based on OLE::Storage_Lite by Kawai, Takanori | // +----------------------------------------------------------------------+ // -// $Id: PPS.php,v 1.7 2007/02/13 21:00:42 schmidt Exp $ /** * Class for creating PPS's for OLE containers @@ -151,13 +150,8 @@ class PPS if (!isset($this->_data)) { return 0; } - //if (isset($this->_PPS_FILE)) { - // fseek($this->_PPS_FILE, 0); - // $stats = fstat($this->_PPS_FILE); - // return $stats[7]; - //} else { - return strlen($this->_data); - //} + + return strlen($this->_data); } /** diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS/File.php b/src/PhpSpreadsheet/Shared/OLE/PPS/File.php index 62946c5c..2b7f77c4 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS/File.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS/File.php @@ -20,7 +20,6 @@ namespace PhpSpreadsheet\Shared\OLE\PPS; // | Based on OLE::Storage_Lite by Kawai, Takanori | // +----------------------------------------------------------------------+ // -// $Id: File.php,v 1.11 2007/02/13 21:00:42 schmidt Exp $ /** * Class for creating File PPS's for OLE containers diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php index 793d3101..c82f4089 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php @@ -20,7 +20,6 @@ namespace PhpSpreadsheet\Shared\OLE\PPS; // | Based on OLE::Storage_Lite by Kawai, Takanori | // +----------------------------------------------------------------------+ // -// $Id: Root.php,v 1.9 2005/04/23 21:53:49 dufuz Exp $ /** * Class for creating Root PPS's for OLE containers @@ -260,17 +259,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS if ($raList[$i]->Type != \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_DIR) { $raList[$i]->Size = $raList[$i]->getDataLen(); if (($raList[$i]->Size >= \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) || (($raList[$i]->Type == \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_ROOT) && isset($raList[$i]->_data))) { - // Write Data - //if (isset($raList[$i]->_PPS_FILE)) { - // $iLen = 0; - // fseek($raList[$i]->_PPS_FILE, 0); // To The Top - // while ($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) { - // $iLen += strlen($sBuff); - // fwrite($FILE, $sBuff); - // } - //} else { - fwrite($FILE, $raList[$i]->_data); - //} + fwrite($FILE, $raList[$i]->_data); if ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE) { fwrite($FILE, str_repeat("\x00", $this->_BIG_BLOCK_SIZE - ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE))); @@ -281,12 +270,6 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS (floor($raList[$i]->Size / $this->_BIG_BLOCK_SIZE) + (($raList[$i]->Size % $this->_BIG_BLOCK_SIZE) ? 1 : 0)); } - // Close file for each PPS, and unlink it - //if (isset($raList[$i]->_PPS_FILE)) { - // fclose($raList[$i]->_PPS_FILE); - // $raList[$i]->_PPS_FILE = null; - // unlink($raList[$i]->_tmp_filename); - //} } } } @@ -319,15 +302,8 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS } fwrite($FILE, pack('V', -2)); - //// Add to Data String(this will be written for RootEntry) - //if ($raList[$i]->_PPS_FILE) { - // fseek($raList[$i]->_PPS_FILE, 0); // To The Top - // while ($sBuff = fread($raList[$i]->_PPS_FILE, 4096)) { - // $sRes .= $sBuff; - // } - //} else { - $sRes .= $raList[$i]->_data; - //} + // Add to Data String(this will be written for RootEntry) + $sRes .= $raList[$i]->_data; if ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE) { $sRes .= str_repeat("\x00", $this->_SMALL_BLOCK_SIZE - ($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE)); } diff --git a/src/PhpSpreadsheet/Shared/OLERead.php b/src/PhpSpreadsheet/Shared/OLERead.php index a9d468eb..37c852b0 100644 --- a/src/PhpSpreadsheet/Shared/OLERead.php +++ b/src/PhpSpreadsheet/Shared/OLERead.php @@ -281,13 +281,11 @@ class OLERead // Summary information if ($name == chr(5) . 'SummaryInformation') { - // echo 'Summary Information<br />'; $this->summaryInformation = count($this->props) - 1; } // Additional Document Summary information if ($name == chr(5) . 'DocumentSummaryInformation') { - // echo 'Document Summary Information<br />'; $this->documentSummaryInformation = count($this->props) - 1; } diff --git a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php index 33f70dfc..5621c249 100644 --- a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php +++ b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php @@ -25,8 +25,6 @@ namespace PhpSpreadsheet\Shared\PCLZip; // The use of this software is at the risk of the user. // // -------------------------------------------------------------------------------- -// $Id: PclZip.php,v 1.60 2009/09/30 21:01:04 vblavet Exp $ -// -------------------------------------------------------------------------------- // ----- Constants if (!defined('PCLZIP_READ_BLOCK_SIZE')) { @@ -688,7 +686,6 @@ class PclZip // ----- Set default values $v_options = []; - // $v_path = "./"; $v_path = ''; $v_remove_path = ''; $v_remove_all_path = false; @@ -839,7 +836,6 @@ class PclZip // ----- Set default values $v_options = []; - // $v_path = "./"; $v_path = ''; $v_remove_path = ''; $v_remove_all_path = false; @@ -2726,7 +2722,6 @@ class PclZip while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @fread($v_file_compressed, $v_read_size); - //$v_binary_data = pack('a'.$v_read_size, $v_buffer); @fwrite($this->zip_fd, $v_buffer, $v_read_size); $v_size -= $v_read_size; } @@ -3690,7 +3685,6 @@ class PclZip while ($v_size != 0) { $v_read_size = ($v_size < PCLZIP_READ_BLOCK_SIZE ? $v_size : PCLZIP_READ_BLOCK_SIZE); $v_buffer = @gzread($v_src_file, $v_read_size); - //$v_binary_data = pack('a'.$v_read_size, $v_buffer); @fwrite($v_dest_file, $v_buffer, $v_read_size); $v_size -= $v_read_size; } diff --git a/src/PhpSpreadsheet/Shared/PasswordHasher.php b/src/PhpSpreadsheet/Shared/PasswordHasher.php index 491a6066..9468564f 100644 --- a/src/PhpSpreadsheet/Shared/PasswordHasher.php +++ b/src/PhpSpreadsheet/Shared/PasswordHasher.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared; /** - * \PhpSpreadsheet\Shared\PasswordHasher - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Shared/StringHelper.php b/src/PhpSpreadsheet/Shared/StringHelper.php index 403fdffe..b266fb29 100644 --- a/src/PhpSpreadsheet/Shared/StringHelper.php +++ b/src/PhpSpreadsheet/Shared/StringHelper.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared; /** - * \PhpSpreadsheet\Shared\StringHelper - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -43,7 +41,7 @@ class StringHelper /** * SYLK Characters array * - * $var array + * @var array */ private static $SYLKCharacters = []; diff --git a/src/PhpSpreadsheet/Shared/TimeZone.php b/src/PhpSpreadsheet/Shared/TimeZone.php index fa4f54b4..50253776 100644 --- a/src/PhpSpreadsheet/Shared/TimeZone.php +++ b/src/PhpSpreadsheet/Shared/TimeZone.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared; /** - * \PhpSpreadsheet\Shared\TimeZone - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Shared/Trend/BestFit.php b/src/PhpSpreadsheet/Shared/Trend/BestFit.php index 892c2800..2cdbb6f2 100644 --- a/src/PhpSpreadsheet/Shared/Trend/BestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/BestFit.php @@ -398,11 +398,9 @@ class BestFit } // calculate slope -// $this->slope = (($this->valueCount * $xy_sum) - ($x_sum * $y_sum)) / (($this->valueCount * $xx_sum) - ($x_sum * $x_sum)); $this->slope = $mBase / $mDivisor; // calculate intersect -// $this->intersect = ($y_sum - ($this->slope * $x_sum)) / $this->valueCount; if ($const) { $this->intersect = $meanY - ($this->slope * $meanX); } else { diff --git a/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php b/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php index 42f25a0f..5a2046cb 100644 --- a/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Shared\Trend; /** - * \PhpSpreadsheet\Shared\Trend\powerBestFit - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Style/NumberFormat.php b/src/PhpSpreadsheet/Style/NumberFormat.php index 1d0fbe23..ea853446 100644 --- a/src/PhpSpreadsheet/Style/NumberFormat.php +++ b/src/PhpSpreadsheet/Style/NumberFormat.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Style; /** - * \PhpSpreadsheet\Style\NumberFormat - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -688,7 +686,6 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable } if (preg_match('/#?.*\?\/\?/', $format, $m)) { - //echo 'Format mask is fractional '.$format.' <br />'; if ($value != (int) $value) { self::formatAsFraction($value, $format); } diff --git a/src/PhpSpreadsheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet.php index 27d2f108..dd4ea72c 100644 --- a/src/PhpSpreadsheet/Worksheet.php +++ b/src/PhpSpreadsheet/Worksheet.php @@ -2647,15 +2647,7 @@ class Worksheet implements IComparable { // Flush cache $this->cellCollection->getCacheData('A1'); - // Build a reference table from images -// $imageCoordinates = array(); -// $iterator = $this->getDrawingCollection()->getIterator(); -// while ($iterator->valid()) { -// $imageCoordinates[$iterator->current()->getCoordinates()] = true; -// -// $iterator->next(); -// } -// + // Lookup highest column and highest row if cells are cleaned $colRow = $this->cellCollection->getHighestRowAndColumn(); $highestRow = $colRow['row']; diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/src/PhpSpreadsheet/Worksheet/AutoFilter.php index 41ba5225..8d93d6cc 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\AutoFilter - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -593,7 +591,6 @@ class AutoFilter list($rangeStart, $rangeEnd) = \PhpSpreadsheet\Cell::rangeBoundaries($this->range); // The heading row should always be visible -// echo 'AutoFilter Heading Row ', $rangeStart[1],' is always SHOWN',PHP_EOL; $this->workSheet->getRowDimension($rangeStart[1])->setVisible(true); $columnFilterTests = []; @@ -774,31 +771,23 @@ class AutoFilter } } -// echo 'Column Filter Test CRITERIA',PHP_EOL; -// var_dump($columnFilterTests); -// // Execute the column tests for each row in the autoFilter range to determine show/hide, for ($row = $rangeStart[1] + 1; $row <= $rangeEnd[1]; ++$row) { - // echo 'Testing Row = ', $row,PHP_EOL; $result = true; foreach ($columnFilterTests as $columnID => $columnFilterTest) { - // echo 'Testing cell ', $columnID.$row,PHP_EOL; $cellValue = $this->workSheet->getCell($columnID . $row)->getCalculatedValue(); -// echo 'Value is ', $cellValue,PHP_EOL; // Execute the filter test $result = $result && call_user_func_array( ['\\PhpSpreadsheet\\Worksheet\\AutoFilter', $columnFilterTest['method']], [$cellValue, $columnFilterTest['arguments']] ); -// echo (($result) ? 'VALID' : 'INVALID'),PHP_EOL; // If filter test has resulted in FALSE, exit the loop straightaway rather than running any more tests if (!$result) { break; } } // Set show/hide for the row based on the result of the autoFilter result -// echo (($result) ? 'SHOW' : 'HIDE'),PHP_EOL; $this->workSheet->getRowDimension($row)->setVisible($result); } diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php index ec205e62..3d889629 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet\AutoFilter; /** - * \PhpSpreadsheet\Worksheet\AutoFilter\Column - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php index 8dd5a682..92abb78e 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet\AutoFilter\Column; /** - * \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/BaseDrawing.php b/src/PhpSpreadsheet/Worksheet/BaseDrawing.php index 06734b16..324deb80 100644 --- a/src/PhpSpreadsheet/Worksheet/BaseDrawing.php +++ b/src/PhpSpreadsheet/Worksheet/BaseDrawing.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_BaseDrawing - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/CellIterator.php b/src/PhpSpreadsheet/Worksheet/CellIterator.php index dcc285ff..cbca32ca 100644 --- a/src/PhpSpreadsheet/Worksheet/CellIterator.php +++ b/src/PhpSpreadsheet/Worksheet/CellIterator.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_CellIterator - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/Column.php b/src/PhpSpreadsheet/Worksheet/Column.php index deec3f77..32ebea12 100644 --- a/src/PhpSpreadsheet/Worksheet/Column.php +++ b/src/PhpSpreadsheet/Worksheet/Column.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\Column - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php b/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php index 8ce90f3c..7cd71d35 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\ColumnCellIterator - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/ColumnDimension.php b/src/PhpSpreadsheet/Worksheet/ColumnDimension.php index 93000628..5381c8b5 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnDimension.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnDimension.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\ColumnDimension - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/ColumnIterator.php b/src/PhpSpreadsheet/Worksheet/ColumnIterator.php index a37f09a2..61731bf2 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnIterator.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnIterator.php @@ -6,8 +6,6 @@ use PhpSpreadsheet\Cell; use PhpSpreadsheet\Exception; /** - * \PhpSpreadsheet\Worksheet\ColumnIterator - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/Dimension.php b/src/PhpSpreadsheet/Worksheet/Dimension.php index aaca274a..72477f95 100644 --- a/src/PhpSpreadsheet/Worksheet/Dimension.php +++ b/src/PhpSpreadsheet/Worksheet/Dimension.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_Dimension - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/Drawing.php b/src/PhpSpreadsheet/Worksheet/Drawing.php index 145443cb..1f716311 100644 --- a/src/PhpSpreadsheet/Worksheet/Drawing.php +++ b/src/PhpSpreadsheet/Worksheet/Drawing.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_Drawing - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php b/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php index cda60fc5..b4d6cb93 100644 --- a/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php +++ b/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet\Drawing; /** - * \PhpSpreadsheet\Worksheet_Drawing_Shadow - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/HeaderFooter.php b/src/PhpSpreadsheet/Worksheet/HeaderFooter.php index 2e54dff2..8dd777cd 100644 --- a/src/PhpSpreadsheet/Worksheet/HeaderFooter.php +++ b/src/PhpSpreadsheet/Worksheet/HeaderFooter.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_HeaderFooter - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php b/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php index 28d76dd9..70767072 100644 --- a/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php +++ b/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_HeaderFooterDrawing - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php b/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php index 2b4c0026..ae6957c1 100644 --- a/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php +++ b/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_MemoryDrawing - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/PageMargins.php b/src/PhpSpreadsheet/Worksheet/PageMargins.php index c06089fd..5b2bc85b 100644 --- a/src/PhpSpreadsheet/Worksheet/PageMargins.php +++ b/src/PhpSpreadsheet/Worksheet/PageMargins.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\PageMargins - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/PageSetup.php b/src/PhpSpreadsheet/Worksheet/PageSetup.php index 8ddd1fa4..5eb7598b 100644 --- a/src/PhpSpreadsheet/Worksheet/PageSetup.php +++ b/src/PhpSpreadsheet/Worksheet/PageSetup.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\PageSetup - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/Protection.php b/src/PhpSpreadsheet/Worksheet/Protection.php index 374a58e2..fe8821a1 100644 --- a/src/PhpSpreadsheet/Worksheet/Protection.php +++ b/src/PhpSpreadsheet/Worksheet/Protection.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_Protection - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/Row.php b/src/PhpSpreadsheet/Worksheet/Row.php index 7385d0b3..54f18704 100644 --- a/src/PhpSpreadsheet/Worksheet/Row.php +++ b/src/PhpSpreadsheet/Worksheet/Row.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\Row - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/RowCellIterator.php b/src/PhpSpreadsheet/Worksheet/RowCellIterator.php index 6ca3dc79..e935d2f5 100644 --- a/src/PhpSpreadsheet/Worksheet/RowCellIterator.php +++ b/src/PhpSpreadsheet/Worksheet/RowCellIterator.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\RowCellIterator - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/RowDimension.php b/src/PhpSpreadsheet/Worksheet/RowDimension.php index 9782d5d8..34850847 100644 --- a/src/PhpSpreadsheet/Worksheet/RowDimension.php +++ b/src/PhpSpreadsheet/Worksheet/RowDimension.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\RowDimension - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/RowIterator.php b/src/PhpSpreadsheet/Worksheet/RowIterator.php index cd88d119..d6234af3 100644 --- a/src/PhpSpreadsheet/Worksheet/RowIterator.php +++ b/src/PhpSpreadsheet/Worksheet/RowIterator.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet\RowIterator - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Worksheet/SheetView.php b/src/PhpSpreadsheet/Worksheet/SheetView.php index a367e828..a5130296 100644 --- a/src/PhpSpreadsheet/Worksheet/SheetView.php +++ b/src/PhpSpreadsheet/Worksheet/SheetView.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Worksheet; /** - * \PhpSpreadsheet\Worksheet_SheetView - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Writer/BaseWriter.php b/src/PhpSpreadsheet/Writer/BaseWriter.php index ce1316db..9e6836e4 100644 --- a/src/PhpSpreadsheet/Writer/BaseWriter.php +++ b/src/PhpSpreadsheet/Writer/BaseWriter.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer; /** - * \PhpSpreadsheet\Writer\BaseWriter - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Chart.php b/src/PhpSpreadsheet/Writer/Excel2007/Chart.php index fd25afbf..86d6babb 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Chart.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Chart.php @@ -310,10 +310,6 @@ class Chart extends WriterPart } // Generate 2 unique numbers to use for axId values - // $id1 = $id2 = rand(10000000,99999999); - // do { - // $id2 = rand(10000000,99999999); - // } while ($id1 == $id2); $id1 = '75091328'; $id2 = '75089408'; @@ -458,7 +454,6 @@ class Chart extends WriterPart $caption = $caption[0]; } $objWriter->startElement('a:t'); - // $objWriter->writeAttribute('xml:space', 'preserve'); $objWriter->writeRawData(\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($caption)); $objWriter->endElement(); @@ -808,7 +803,6 @@ class Chart extends WriterPart } $objWriter->startElement('a:t'); - // $objWriter->writeAttribute('xml:space', 'preserve'); $objWriter->writeRawData(\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($caption)); $objWriter->endElement(); diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Comments.php b/src/PhpSpreadsheet/Writer/Excel2007/Comments.php index 97bd070d..7a19964a 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Comments.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Comments.php @@ -240,9 +240,6 @@ class Comments extends WriterPart // x:SizeWithCells $objWriter->writeElement('x:SizeWithCells', ''); - // x:Anchor - //$objWriter->writeElement('x:Anchor', $column . ', 15, ' . ($row - 2) . ', 10, ' . ($column + 4) . ', 15, ' . ($row + 5) . ', 18'); - // x:AutoFill $objWriter->writeElement('x:AutoFill', 'False'); diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php b/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php index a082326a..b96aebc0 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php @@ -242,47 +242,6 @@ class Drawing extends WriterPart $objWriter->endElement(); -// // a:solidFill -// $objWriter->startElement('a:solidFill'); - -// // a:srgbClr -// $objWriter->startElement('a:srgbClr'); -// $objWriter->writeAttribute('val', 'FFFFFF'); - -///* SHADE -// // a:shade -// $objWriter->startElement('a:shade'); -// $objWriter->writeAttribute('val', '85000'); -// $objWriter->endElement(); -//*/ - -// $objWriter->endElement(); - -// $objWriter->endElement(); -/* - // a:ln - $objWriter->startElement('a:ln'); - $objWriter->writeAttribute('w', '88900'); - $objWriter->writeAttribute('cap', 'sq'); - - // a:solidFill - $objWriter->startElement('a:solidFill'); - - // a:srgbClr - $objWriter->startElement('a:srgbClr'); - $objWriter->writeAttribute('val', 'FFFFFF'); - $objWriter->endElement(); - - $objWriter->endElement(); - - // a:miter - $objWriter->startElement('a:miter'); - $objWriter->writeAttribute('lim', '800000'); - $objWriter->endElement(); - - $objWriter->endElement(); -*/ - if ($pDrawing->getShadow()->getVisible()) { // a:effectLst $objWriter->startElement('a:effectLst'); diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Rels.php b/src/PhpSpreadsheet/Writer/Excel2007/Rels.php index 03f6b573..d2100313 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Rels.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Rels.php @@ -221,21 +221,6 @@ class Rels extends WriterPart ); } - // Write chart relationships? -// $chartCount = 0; -// $charts = $pWorksheet->getChartCollection(); -// echo 'Chart Rels: ' , count($charts) , '<br />'; -// if (count($charts) > 0) { -// foreach ($charts as $chart) { -// $this->writeRelationship( -// $objWriter, -// ++$d, -// 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', -// '../charts/chart' . ++$chartCount . '.xml' -// ); -// } -// } -// // Write hyperlink relationships? $i = 1; foreach ($pWorksheet->getHyperlinkCollection() as $hyperlink) { diff --git a/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php b/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php index 1c7549b0..ee50d089 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php @@ -264,22 +264,10 @@ class StringTable extends WriterPart $objWriter->writeAttribute('typeface', $element->getFont()->getName()); $objWriter->endElement(); - // Superscript / subscript -// if ($element->getFont()->getSuperScript() || $element->getFont()->getSubScript()) { -// $objWriter->startElement($prefix.'vertAlign'); -// if ($element->getFont()->getSuperScript()) { -// $objWriter->writeAttribute('val', 'superscript'); -// } elseif ($element->getFont()->getSubScript()) { -// $objWriter->writeAttribute('val', 'subscript'); -// } -// $objWriter->endElement(); -// } -// $objWriter->endElement(); // t $objWriter->startElement($prefix . 't'); -// $objWriter->writeAttribute('xml:space', 'preserve'); // Excel2010 accepts, Excel2007 complains $objWriter->writeRawData(\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($element->getText())); $objWriter->endElement(); diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php index b4ee976b..9e9d7643 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php @@ -145,7 +145,6 @@ class Worksheet extends WriterPart { // sheetPr $objWriter->startElement('sheetPr'); - //$objWriter->writeAttribute('codeName', $pSheet->getTitle()); if ($pSheet->getParent()->hasMacros()) { //if the workbook have macros, we need to have codeName for the sheet if ($pSheet->hasCodeName() == false) { @@ -1125,7 +1124,6 @@ class Worksheet extends WriterPart } if ($this->getParentWriter()->getOffice2003Compatibility() === false) { if ($this->getParentWriter()->getPreCalculateFormulas()) { - // $calculatedValue = $pCell->getCalculatedValue(); if (!is_array($calculatedValue) && substr($calculatedValue, 0, 1) != '#') { $objWriter->writeElement('v', \PhpSpreadsheet\Shared\StringHelper::formatNumber($calculatedValue)); } else { diff --git a/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php b/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php index 735ca7cb..e6b352fc 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel2007; /** - * \PhpSpreadsheet\Writer\Excel2007\WriterPart - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Writer/Excel5.php b/src/PhpSpreadsheet/Writer/Excel5.php index f1af16ce..c81dc2fb 100644 --- a/src/PhpSpreadsheet/Writer/Excel5.php +++ b/src/PhpSpreadsheet/Writer/Excel5.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer; /** - * \PhpSpreadsheet\Writer\Excel5 - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php b/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php index c04204d9..d4556053 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php +++ b/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel5; /** - * \PhpSpreadsheet\Writer\Excel5\BIFFwriter - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -94,7 +92,6 @@ class BIFFwriter { $this->_data = ''; $this->_datasize = 0; -// $this->limit = 8224; } /** diff --git a/src/PhpSpreadsheet/Writer/Excel5/Escher.php b/src/PhpSpreadsheet/Writer/Excel5/Escher.php index 2a147add..32c4d331 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Escher.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Escher.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel5; /** - * \PhpSpreadsheet\Writer\Excel5\Escher - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -292,7 +290,6 @@ class Escher // number of shapes in this drawing (including group shape) $countShapes = count($this->object->getSpgrContainer()->getChildren()); $innerData .= $header . pack('VV', $countShapes, $this->object->getLastSpId()); - //$innerData .= $header . pack('VV', 0, 0); // write the spgrContainer if ($spgrContainer = $this->object->getSpgrContainer()) { diff --git a/src/PhpSpreadsheet/Writer/Excel5/Font.php b/src/PhpSpreadsheet/Writer/Excel5/Font.php index 17c4542f..1404af56 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Font.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Font.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel5; /** - * \PhpSpreadsheet\Writer\Excel5\Font - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Writer/Excel5/Parser.php b/src/PhpSpreadsheet/Writer/Excel5/Parser.php index e188672d..e7fec457 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Parser.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Parser.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel5; /** - * \PhpSpreadsheet\Writer\Excel5\Parser - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -592,7 +590,6 @@ class Parser private function convertFunction($token, $num_args) { $args = $this->functions[$token][1]; -// $volatile = $this->functions[$token][3]; // Fixed number of args eg. TIME($i, $j, $k). if ($args >= 0) { @@ -650,8 +647,6 @@ class Parser */ private function convertRange3d($token) { - // $class = 0; // formulas like Sheet1!$A$1:$A$2 in list type data validation need this class (0x3B) - // Split the ref at the ! symbol list($ext_ref, $range) = explode('!', $token); @@ -670,15 +665,7 @@ class Parser } // The ptg value depends on the class of the ptg. -// if ($class == 0) { - $ptgArea = pack('C', $this->ptg['ptgArea3d']); -// } elseif ($class == 1) { -// $ptgArea = pack("C", $this->ptg['ptgArea3dV']); -// } elseif ($class == 2) { -// $ptgArea = pack("C", $this->ptg['ptgArea3dA']); -// } else { -// throw new \PhpSpreadsheet\Writer\Exception("Unknown class $class"); -// } + $ptgArea = pack('C', $this->ptg['ptgArea3d']); return $ptgArea . $ext_ref . $row1 . $row2 . $col1 . $col2; } @@ -691,23 +678,13 @@ class Parser */ private function convertRef2d($cell) { - // $class = 2; // as far as I know, this is magick. - // Convert the cell reference $cell_array = $this->cellToPackedRowcol($cell); list($row, $col) = $cell_array; // The ptg value depends on the class of the ptg. -// if ($class == 0) { -// $ptgRef = pack("C", $this->ptg['ptgRef']); -// } elseif ($class == 1) { -// $ptgRef = pack("C", $this->ptg['ptgRefV']); -// } elseif ($class == 2) { - $ptgRef = pack('C', $this->ptg['ptgRefA']); -// } else { -// // TODO: use real error codes -// throw new \PhpSpreadsheet\Writer\Exception("Unknown class $class"); -// } + $ptgRef = pack('C', $this->ptg['ptgRefA']); + return $ptgRef . $row . $col; } @@ -720,8 +697,6 @@ class Parser */ private function convertRef3d($cell) { - // $class = 2; // as far as I know, this is magick. - // Split the ref at the ! symbol list($ext_ref, $cell) = explode('!', $cell); @@ -732,15 +707,7 @@ class Parser list($row, $col) = $this->cellToPackedRowcol($cell); // The ptg value depends on the class of the ptg. -// if ($class == 0) { -// $ptgRef = pack("C", $this->ptg['ptgRef3d']); -// } elseif ($class == 1) { -// $ptgRef = pack("C", $this->ptg['ptgRef3dV']); -// } elseif ($class == 2) { - $ptgRef = pack('C', $this->ptg['ptgRef3dA']); -// } else { -// throw new \PhpSpreadsheet\Writer\Exception("Unknown class $class"); -// } + $ptgRef = pack('C', $this->ptg['ptgRef3dA']); return $ptgRef . $ext_ref . $row . $col; } @@ -1034,9 +1001,6 @@ class Parser } if ($this->match($token) != '') { - //if ($i < strlen($this->formula) - 1) { - // $this->lookAhead = $this->formula{$i+1}; - //} $this->currentCharacter = $i + 1; $this->currentToken = $token; @@ -1355,7 +1319,6 @@ class Parser } elseif (preg_match('/^' . self::REGEX_SHEET_TITLE_UNQUOTED . "(\:" . self::REGEX_SHEET_TITLE_UNQUOTED . ")?\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u", $this->currentToken)) { // If it's an external range (Sheet1!A1:B2 or Sheet1:Sheet2!A1:B2 or Sheet1!$A$1:$B$2 or Sheet1:Sheet2!$A$1:$B$2) // must be an error? - //$result = $this->currentToken; $result = $this->createTree($this->currentToken, '', ''); $this->advance(); @@ -1363,7 +1326,6 @@ class Parser } elseif (preg_match("/^'" . self::REGEX_SHEET_TITLE_QUOTED . "(\:" . self::REGEX_SHEET_TITLE_QUOTED . ")?'\!\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+:\\$?([A-Ia-i]?[A-Za-z])?\\$?[0-9]+$/u", $this->currentToken)) { // If it's an external range ('Sheet1'!A1:B2 or 'Sheet1'!A1:B2 or 'Sheet1'!$A$1:$B$2 or 'Sheet1'!$A$1:$B$2) // must be an error? - //$result = $this->currentToken; $result = $this->createTree($this->currentToken, '', ''); $this->advance(); diff --git a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php index 3b360d58..e2a4dac6 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel5; /** - * \PhpSpreadsheet\Writer\Excel5\Workbook - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -210,8 +208,6 @@ class Workbook extends BIFFwriter $this->spreadsheet = $spreadsheet; - // set BIFFwriter limit for CONTINUE records - // $this->_limit = 8224; $this->codepage = 0x04B0; // Add empty sheets and Build color cache @@ -1228,7 +1224,7 @@ class Workbook extends BIFFwriter $header = pack('vv', $record, $length); /* using the same country code always for simplicity */ $data = pack('vv', $this->countryCode, $this->countryCode); - //$this->append($header . $data); + return $this->writeData($header . $data); } diff --git a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php index 754a02ff..6d9488ab 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel5; /** - * \PhpSpreadsheet\Writer\Excel5\Worksheet - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -209,9 +207,6 @@ class Worksheet extends BIFFwriter // It needs to call its parent's constructor explicitly parent::__construct(); - // change BIFFwriter limit for CONTINUE records -// $this->_limit = 8224; - $this->_preCalculateFormulas = $preCalculateFormulas; $this->stringTotal = &$str_total; $this->stringUnique = &$str_unique; @@ -221,8 +216,6 @@ class Worksheet extends BIFFwriter $this->phpSheet = $phpSheet; - //$this->ext_sheets = array(); - //$this->offset = 0; $this->xlsStringMaxLength = 255; $this->columnInfo = []; $this->selection = [0, 0, 0, 0]; @@ -245,7 +238,6 @@ class Worksheet extends BIFFwriter $maxC = $this->phpSheet->getHighestColumn(); // Determine lowest and highest column and row -// $this->firstRowIndex = ($minR > 65535) ? 65535 : $minR; $this->lastRowIndex = ($maxR > 65535) ? 65535 : $maxR; $this->firstColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($minC); @@ -398,7 +390,6 @@ class Worksheet extends BIFFwriter $cVal = $cell->getValue(); if ($cVal instanceof \PhpSpreadsheet\RichText) { - // $this->writeString($row, $column, $cVal->getPlainText(), $xfIndex); $arrcRun = []; $str_len = \PhpSpreadsheet\Shared\StringHelper::countCharacters($cVal->getPlainText(), 'UTF-8'); $str_pos = 0; @@ -479,7 +470,6 @@ class Worksheet extends BIFFwriter $url = str_replace('sheet://', 'internal:', $url); } elseif (preg_match('/^(http:|https:|ftp:|mailto:)/', $url)) { // URL - // $url = $url; } else { // external (local file) $url = 'external:' . $url; @@ -2305,7 +2295,7 @@ class Worksheet extends BIFFwriter public function insertBitmap($row, $col, $bitmap, $x = 0, $y = 0, $scale_x = 1, $scale_y = 1) { $bitmap_array = (is_resource($bitmap) ? $this->processBitmapGd($bitmap) : $this->processBitmap($bitmap)); - list($width, $height, $size, $data) = $bitmap_array; //$this->processBitmap($bitmap); + list($width, $height, $size, $data) = $bitmap_array; // Scale the frame of the image. $width *= $scale_x; @@ -2606,7 +2596,6 @@ class Worksheet extends BIFFwriter $compression = unpack('Vcomp', substr($data, 0, 4)); $data = substr($data, 4); - //$compression = 0; if ($compression['comp'] != 0) { throw new \PhpSpreadsheet\Writer\Exception("$bitmap: compression not supported in bitmap image.\n"); } diff --git a/src/PhpSpreadsheet/Writer/Excel5/Xf.php b/src/PhpSpreadsheet/Writer/Excel5/Xf.php index 07e2c9e3..1cf9f37b 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Xf.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Xf.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer\Excel5; /** - * \PhpSpreadsheet\Writer\Excel5\Xf - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Writer/Exception.php b/src/PhpSpreadsheet/Writer/Exception.php index 42cec6f4..91e79138 100644 --- a/src/PhpSpreadsheet/Writer/Exception.php +++ b/src/PhpSpreadsheet/Writer/Exception.php @@ -3,8 +3,6 @@ namespace PhpSpreadsheet\Writer; /** - * \PhpSpreadsheet\Writer\Exception - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index f840bbaf..a52eccab 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -1035,8 +1035,6 @@ class HTML extends BaseWriter implements IWriter */ private function createCSSStyleBorder(\Spreadsheet\Style\Border $pStyle) { - // Create CSS -// $css = $this->mapBorderStyle($pStyle->getBorderStyle()) . ' #' . $pStyle->getColor()->getRGB(); // Create CSS - add !important to non-none border styles for merged cells $borderStyle = $this->mapBorderStyle($pStyle->getBorderStyle()); $css = $borderStyle . ' #' . $pStyle->getColor()->getRGB() . (($borderStyle == 'none') ? '' : ' !important'); diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php b/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php index 8841fa9a..ce218364 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php @@ -43,19 +43,12 @@ class Comment $comment = $comments[$cell->getCoordinate()]; $objWriter->startElement('office:annotation'); - //$objWriter->writeAttribute('draw:style-name', 'gr1'); - //$objWriter->writeAttribute('draw:text-style-name', 'P1'); - $objWriter->writeAttribute('svg:width', $comment->getWidth()); + $objWriter->writeAttribute('svg:width', $comment->getWidth()); $objWriter->writeAttribute('svg:height', $comment->getHeight()); $objWriter->writeAttribute('svg:x', $comment->getMarginLeft()); $objWriter->writeAttribute('svg:y', $comment->getMarginTop()); - //$objWriter->writeAttribute('draw:caption-point-x', $comment->getMarginLeft()); - //$objWriter->writeAttribute('draw:caption-point-y', $comment->getMarginTop()); - $objWriter->writeElement('dc:creator', $comment->getAuthor()); - // TODO: Not realized in \PhpSpreadsheet\Comment yet. - //$objWriter->writeElement('dc:date', $comment->getDate()); - $objWriter->writeElement('text:p', $comment->getText()->getPlainText()); - //$objWriter->writeAttribute('draw:text-style-name', 'P1'); + $objWriter->writeElement('dc:creator', $comment->getAuthor()); + $objWriter->writeElement('text:p', $comment->getText()->getPlainText()); $objWriter->endElement(); } } diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Content.php b/src/PhpSpreadsheet/Writer/OpenDocument/Content.php index 929af08d..3453fd31 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Content.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Content.php @@ -123,7 +123,6 @@ class Content extends WriterPart $sheet_count = $spreadsheet->getSheetCount(); for ($i = 0; $i < $sheet_count; ++$i) { - //$this->getWriterPart('Worksheet')->writeWorksheet()); $objWriter->startElement('table:table'); $objWriter->writeAttribute('table:name', $spreadsheet->getSheet($i)->getTitle()); $objWriter->writeElement('office:forms'); From c319991c41cea649aaef25ac5117a6b80fd32349 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Fri, 26 Aug 2016 18:11:03 +0900 Subject: [PATCH 15/29] Delete Build system It was obsolete and while we may re-introduce phar distribution in the future, there are most likely easier way to that nowadays (via composer). --- .gitattributes | 1 - Build/PharStub.php | 14 -- Build/build-release-documentation.bat | 2 - Build/build-release-pear.bat | 2 - Build/build-release-phar.bat | 2 - Build/build-release-standard.bat | 2 - Build/build.xml | 216 -------------------------- 7 files changed, 239 deletions(-) delete mode 100644 Build/PharStub.php delete mode 100644 Build/build-release-documentation.bat delete mode 100644 Build/build-release-pear.bat delete mode 100644 Build/build-release-phar.bat delete mode 100644 Build/build-release-standard.bat delete mode 100644 Build/build.xml diff --git a/.gitattributes b/.gitattributes index 8afa9920..a898d350 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,2 @@ -/Build export-ignore /tests export-ignore README.md export-ignore diff --git a/Build/PharStub.php b/Build/PharStub.php deleted file mode 100644 index 570b9db0..00000000 --- a/Build/PharStub.php +++ /dev/null @@ -1,14 +0,0 @@ -<?php -spl_autoload_register(function ($class) { - include 'phar://PHPExcel/' . str_replace('_', '/', $class) . '.php'; -}); - -try { - Phar::mapPhar(); - include 'phar://PHPExcel/PHPExcel.php'; -} catch (PharException $e) { - error_log($e->getMessage()); - exit(1); -} - -__HALT_COMPILER(); \ No newline at end of file diff --git a/Build/build-release-documentation.bat b/Build/build-release-documentation.bat deleted file mode 100644 index 3a942e64..00000000 --- a/Build/build-release-documentation.bat +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -phing -f build.xml release-documentation \ No newline at end of file diff --git a/Build/build-release-pear.bat b/Build/build-release-pear.bat deleted file mode 100644 index 1e056eab..00000000 --- a/Build/build-release-pear.bat +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -phing -f build.xml release-pear \ No newline at end of file diff --git a/Build/build-release-phar.bat b/Build/build-release-phar.bat deleted file mode 100644 index 985945d0..00000000 --- a/Build/build-release-phar.bat +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -phing -f build.xml release-phar \ No newline at end of file diff --git a/Build/build-release-standard.bat b/Build/build-release-standard.bat deleted file mode 100644 index 3cce027f..00000000 --- a/Build/build-release-standard.bat +++ /dev/null @@ -1,2 +0,0 @@ -@ECHO OFF -phing -f build.xml release-standard \ No newline at end of file diff --git a/Build/build.xml b/Build/build.xml deleted file mode 100644 index be49be3c..00000000 --- a/Build/build.xml +++ /dev/null @@ -1,216 +0,0 @@ -<?xml version="1.0"?> -<project name="PHPExcel" default="release-standard" basedir="."> - <target name="gather"> - <if> - <isset property="${packageVersion}"/> - <then> - <echo message="PHPExcel version number is ${packageVersion}" /> - </then> - <else> - <propertyprompt propertyName="packageVersion" defaultValue="1.0.0" - promptText="Enter PHPExcel version number"/> - </else> - </if> - - <if> - <isset property="${releaseDate}"/> - <then> - <echo message="Release date is ${releaseDate}" /> - </then> - <else> - <propertyprompt propertyName="releaseDate" defaultValue="2010-01-01" - promptText="Enter PHPExcel release date"/> - </else> - </if> - - <if> - <isset property="${documentFormat}"/> - <then> - <echo message="Document Format is ${documentFormat}" /> - </then> - <else> - <propertyprompt propertyName="documentFormat" defaultValue="doc" - promptText="Enter Document Format"/> - </else> - </if> - </target> - - <target name="prepare" depends="gather"> - <echo msg="Creating build directory: ./build"/> - <mkdir dir="${phing.dir}/build"/> - </target> - - <target name="build" depends="prepare"> - <echo msg="Copying source files to build directory..."/> - - <copy todir="${phing.dir}/build/Classes" overwrite="true"> - <fileset dir="${phing.dir}/../Classes"> - <include name="**/*"/> - </fileset> - </copy> - - <copy todir="${phing.dir}/build/Examples" overwrite="true"> - <fileset dir="${phing.dir}/../Examples"> - <include name="**/*"/> - </fileset> - </copy> - - <copy todir="${phing.dir}/build/Documentation" overwrite="true"> - <fileset dir="${phing.dir}/../Documentation"> - <include name="*.${documentFormat}"/> - <include name="*.txt"/> - </fileset> - </copy> - <mkdir dir="${phing.dir}/build/Documentation/API"/> - - <copy todir="${phing.dir}/build/Documentation/Examples" overwrite="true"> - <fileset dir="${phing.dir}/../Documentation/Examples"> - <include name="**/*"/> - <exclude name="assets"/> - </fileset> - </copy> - - <copy file="${phing.dir}/../changelog.txt" tofile="${phing.dir}/build/changelog.txt" overwrite="true"/> - <copy file="${phing.dir}/../license.md" tofile="${phing.dir}/build/license.txt" overwrite="true"/> - <copy file="${phing.dir}/../install.txt" tofile="${phing.dir}/build/install.txt" overwrite="true"/> - </target> - - <target name="versionNumber" depends="build"> - <reflexive> - <fileset dir="${phing.dir}/build"> - <include pattern="**/*"/> - </fileset> - <filterchain> - <replaceregexp> - <regexp pattern="##VERSION##" replace="${packageVersion}"/> - <regexp pattern="##DATE##" replace="${releaseDate}"/> - </replaceregexp> - </filterchain> - </reflexive> - - <reflexive> - <fileset dir="${phing.dir}/build"> - <include pattern="**/changelog.txt"/> - </fileset> - <filterchain> - <replaceregexp> - <regexp pattern="Fixed in develop branch for release v${packageVersion}" replace="${releaseDate} (v${packageVersion})"/> - </replaceregexp> - </filterchain> - </reflexive> - </target> - - <target name="apidocs" depends="versionNumber"> - <echo msg="Generating API documentation..."/> - <phpdoc2 title="PHPExcel classes" - destdir="${phing.dir}/build/Documentation/API" - template="responsive"> - <fileset dir="${phing.dir}/build/Classes"> - <include name="**/*.php"/> - </fileset> - </phpdoc2> - </target> - - <target name="release-standard" depends="apidocs"> - <mkdir dir="${phing.dir}/release"/> - - <echo msg="Creating release package (v${packageVersion} with ${documentFormat} documents)..."/> - <zip destfile="${phing.dir}/release/PHPExcel_${packageVersion}_${documentFormat}.zip"> - <fileset dir="${phing.dir}/build"> - <include name="**/*"/> - </fileset> - </zip> - - <echo msg="Cleaning build directory: ./build"/> - <delete dir="${phing.dir}/build"/> - </target> - - <target name="release-phar" depends="versionNumber"> - <mkdir dir="${phing.dir}/release"/> - - <echo msg="Creating PHAR release package (v${packageVersion})..."/> - <pharpackage destfile="${phing.dir}/release/PHPExcel_${packageVersion}.phar" basedir="${phing.dir}/build/Classes" compression="gzip" stub="${phing.dir}/PharStub.php"> - <fileset dir="${phing.dir}/build/Classes"> - <include name="**/**" /> - </fileset> - <metadata> - <element name="version" value="${packageVersion}" /> - <element name="date" value="${releaseDate}" /> - <element name="description" value="A pure PHP library for reading and writing spreadsheet files" /> - <element name="authors"> - <element name="Mark Baker"> - <element name="e-mail" value="mark@lange.demon.co.uk" /> - </element> - </element> - </metadata> - </pharpackage> - - <echo msg="Cleaning build directory: ./build"/> - <delete dir="${phing.dir}/build"/> - </target> - - <target name="release-pear" depends="versionNumber"> - <taskdef classname="phing.tasks.ext.d51PearPkg2Task" name="d51pearpkg2"/> - - <mkdir dir="${phing.dir}/release"/> - - <echo msg="Creating PEAR release package (v${packageVersion})..."/> - - <d51pearpkg2 dir="${phing.dir}/build/Classes" baseinstalldir="PHPExcel"> - <name>PHPExcel</name> - <summary>PHP Excel classes</summary> - <channel>pear.pearplex.net</channel> - <description>Project providing a set of classes for the PHP programming language, which allow you to write - to Excel 2007 files and read from Excel 2007 files. - </description> - <notes>This package ONLY contains the class files, not the documentation and example code. Please refer to - http://www.codeplex.com/PHPExcel for those files. - </notes> - <lead user="maartenba" name="Maarten Balliauw" email="maarten@phpexcel.net"/> - <license uri="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt">LGPL</license> - <version release="${packageVersion}" api="${packageVersion}"/> - <stability release="stable" api="stable"/> - <dependencies> - <php minimum_version="5.2.0"/> - <pear minimum_version="1.4.0"/> - <extension name="zip" minimum_version="1.8.0"/> - </dependencies> - <dirroles key="PHPExcel/Shared/PDF/fonts">data</dirroles> - <dirroles key="PHPExcel/Shared/PDF/fonts/utils">data</dirroles> - <dirroles key="/PHPExcel/Shared/PDF/fonts/utils">data</dirroles> - </d51pearpkg2> - - <exec command="pear package ${phing.dir}/build/Classes/package.xml"/> - <move file="PHPExcel-${packageVersion}.tgz" tofile="${phing.dir}/release/PHPExcel-${packageVersion}.tgz" overwrite="true"/> - - <echo msg="Cleaning build directory: ./build"/> - <delete dir="${phing.dir}/build"/> - </target> - - <target name="release-documentation" depends="gather"> - <mkdir dir="${phing.dir}/release"/> - - <echo msg="Creating documentation release (v${packageVersion} with ${documentFormat} documents)..."/> - <copy todir="${phing.dir}/build" overwrite="true"> - <fileset dir="${phing.dir}/../Documentation"> - <include name="*.${documentFormat}"/> - <include name="*.txt"/> - </fileset> - </copy> - <copy todir="${phing.dir}/build/Examples" overwrite="true"> - <fileset dir="${phing.dir}/../Documentation/Examples"> - <include name="**/*"/> - </fileset> - </copy> - - <echo msg="Creating documentation release package (v${packageVersion} with ${documentFormat} documents)..."/> - <zip destfile="${phing.dir}/release/PHPExcel_${packageVersion}-documentation_${documentFormat}.zip"> - <fileset dir="${phing.dir}/build"> - <include name="**/*"/> - </fileset> - </zip> - - <echo msg="Cleaning build directory: ./build"/> - <delete dir="${phing.dir}/build"/> - </target> -</project> From f02c3320a280a12431ddd9ed2a94da95dc9fe664 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Fri, 26 Aug 2016 21:55:17 +0900 Subject: [PATCH 16/29] Fix typo in README --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 65a64572..32b87fd3 100644 --- a/README.md +++ b/README.md @@ -44,12 +44,12 @@ PhpSpreadsheet is a library written in pure PHP and providing a set of classes t ## Want to contribute? -If you would like to contribute, here are some notes and guidlines: - - All new development happens on feature/fix branches referenced with the github issue number, and are then merged to the develop branch; so the develop branch is always the most up-to-date, working code +If you would like to contribute, here are some notes and guidelines: + - All new development happens on feature/fix branches referenced with the GitHub issue number, and are then merged to the develop branch; so the develop branch is always the most up-to-date, working code - The master branch only contains tagged releases - - If you are going to be submitting a pull request, please fork from develop, and submit your pull request back as a fix/feature branch referencing the github issue number + - If you are going to be submitting a pull request, please fork from develop, and submit your pull request back as a fix/feature branch referencing the GitHub issue number - Wherever possible, code changes should conform to PSR-2 standards - - [Helpful article about forking](https://help.github.com/articles/fork-a-repo/ "Forking a Github repository") + - [Helpful article about forking](https://help.github.com/articles/fork-a-repo/ "Forking a GitHub repository") - [Helpful article about pull requests](https://help.github.com/articles/using-pull-requests/ "Pull Requests") From d8850176a163afcf43f987be1e8dffceab5b1cfc Mon Sep 17 00:00:00 2001 From: Carlos Montiers <cmontiers@gmail.com> Date: Fri, 26 Aug 2016 22:07:12 +0900 Subject: [PATCH 17/29] php://temp maxmemory must be expressed in bytes --- src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php b/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php index 185a35ad..ea2664c9 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php @@ -172,7 +172,7 @@ class PHPTemp extends CacheBase implements ICache */ public function __construct(\PhpSpreadsheet\Worksheet $parent, $arguments) { - $this->memoryCacheSize = (isset($arguments['memoryCacheSize'])) ? $arguments['memoryCacheSize'] : '1MB'; + $this->memoryCacheSize = (isset($arguments['memoryCacheSize'])) ? $arguments['memoryCacheSize'] : 1 * 1024 * 1024; parent::__construct($parent); if (is_null($this->fileHandle)) { From 6acd40325158bb905eb3005b8fbb9618c71af043 Mon Sep 17 00:00:00 2001 From: Carlos Montiers <cmontiers@gmail.com> Date: Fri, 26 Aug 2016 22:09:41 +0900 Subject: [PATCH 18/29] In memory gzip cache method use max compression --- src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php b/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php index 9dc30f19..823c76f6 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php @@ -37,7 +37,7 @@ class MemoryGZip extends CacheBase implements ICache if ($this->currentCellIsDirty && !empty($this->currentObjectID)) { $this->currentObject->detach(); - $this->cellCache[$this->currentObjectID] = gzdeflate(serialize($this->currentObject)); + $this->cellCache[$this->currentObjectID] = gzdeflate(serialize($this->currentObject), 9); $this->currentCellIsDirty = false; } $this->currentObjectID = $this->currentObject = null; From 16a8162a143f3300a44807e1c296caf20710e04c Mon Sep 17 00:00:00 2001 From: Synchro <marcus@synchromedia.co.uk> Date: Mon, 9 Nov 2015 13:50:24 +0100 Subject: [PATCH 19/29] Fix duplicate array key --- src/PhpSpreadsheet/Shared/StringHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpSpreadsheet/Shared/StringHelper.php b/src/PhpSpreadsheet/Shared/StringHelper.php index b266fb29..d6a00e8a 100644 --- a/src/PhpSpreadsheet/Shared/StringHelper.php +++ b/src/PhpSpreadsheet/Shared/StringHelper.php @@ -113,7 +113,7 @@ class StringHelper "\x1B :" => chr(10), "\x1B ;" => chr(11), "\x1B <" => chr(12), - "\x1B :" => chr(13), + "\x1B =" => chr(13), "\x1B >" => chr(14), "\x1B ?" => chr(15), "\x1B!0" => chr(16), From 30e0451bc309c739b2a7cd79724778b62e27929e Mon Sep 17 00:00:00 2001 From: Synchro <marcus@synchromedia.co.uk> Date: Mon, 9 Nov 2015 13:57:06 +0100 Subject: [PATCH 20/29] Fix duplicate array keys in ptg indices Reference: http://read.pudn.com/downloads173/sourcecode/delphi_control/805790/DevExpress/DevExpressComm/cxExcelConst.pas__.htm --- src/PhpSpreadsheet/Writer/Excel5/Parser.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PhpSpreadsheet/Writer/Excel5/Parser.php b/src/PhpSpreadsheet/Writer/Excel5/Parser.php index e7fec457..d86fb6af 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Parser.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Parser.php @@ -194,13 +194,13 @@ class Parser 'ptgRefNV' => 0x4C, 'ptgAreaNV' => 0x4D, 'ptgMemAreaNV' => 0x4E, - 'ptgMemNoMemN' => 0x4F, + 'ptgMemNoMemNV'=> 0x4F, 'ptgFuncCEV' => 0x58, 'ptgNameXV' => 0x59, 'ptgRef3dV' => 0x5A, 'ptgArea3dV' => 0x5B, 'ptgRefErr3dV' => 0x5C, - 'ptgAreaErr3d' => 0x5D, + 'ptgAreaErr3dV'=> 0x5D, 'ptgArrayA' => 0x60, 'ptgFuncA' => 0x61, 'ptgFuncVarA' => 0x62, @@ -216,13 +216,13 @@ class Parser 'ptgRefNA' => 0x6C, 'ptgAreaNA' => 0x6D, 'ptgMemAreaNA' => 0x6E, - 'ptgMemNoMemN' => 0x6F, + 'ptgMemNoMemNA'=> 0x6F, 'ptgFuncCEA' => 0x78, 'ptgNameXA' => 0x79, 'ptgRef3dA' => 0x7A, 'ptgArea3dA' => 0x7B, 'ptgRefErr3dA' => 0x7C, - 'ptgAreaErr3d' => 0x7D, + 'ptgAreaErr3dA'=> 0x7D, ]; // Thanks to Michael Meeks and Gnumeric for the initial arg values. From c50814ac4e64b83df7b26cd48d2b7d2e53c6c064 Mon Sep 17 00:00:00 2001 From: Synchro <marcus@synchromedia.co.uk> Date: Mon, 9 Nov 2015 14:15:29 +0100 Subject: [PATCH 21/29] Remove unused local var, function returns void anyway --- src/PhpSpreadsheet/Reader/Excel5.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/PhpSpreadsheet/Reader/Excel5.php b/src/PhpSpreadsheet/Reader/Excel5.php index cd859d13..e5722894 100644 --- a/src/PhpSpreadsheet/Reader/Excel5.php +++ b/src/PhpSpreadsheet/Reader/Excel5.php @@ -428,7 +428,7 @@ class Excel5 extends BaseReader implements IReader $ole = new \PhpSpreadsheet\Shared\OLERead(); // get excel data - $res = $ole->read($pFilename); + $ole->read($pFilename); return true; } catch (\PhpSpreadsheet\Exception $e) { @@ -1258,7 +1258,7 @@ class Excel5 extends BaseReader implements IReader // OLE reader $ole = new \PhpSpreadsheet\Shared\OLERead(); // get excel data, - $res = $ole->read($pFilename); + $ole->read($pFilename); // Get workbook data: workbook stream + sheet streams $this->data = $ole->getStream($ole->wrkbook); // Get summary information data From 67d5263004385a1e38a4bc1c0abb3d5a065f76ac Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Fri, 26 Aug 2016 22:48:57 +0900 Subject: [PATCH 22/29] Fix code style --- src/PhpSpreadsheet/Writer/Excel5/Parser.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/PhpSpreadsheet/Writer/Excel5/Parser.php b/src/PhpSpreadsheet/Writer/Excel5/Parser.php index d86fb6af..a1629c35 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Parser.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Parser.php @@ -194,13 +194,13 @@ class Parser 'ptgRefNV' => 0x4C, 'ptgAreaNV' => 0x4D, 'ptgMemAreaNV' => 0x4E, - 'ptgMemNoMemNV'=> 0x4F, + 'ptgMemNoMemNV' => 0x4F, 'ptgFuncCEV' => 0x58, 'ptgNameXV' => 0x59, 'ptgRef3dV' => 0x5A, 'ptgArea3dV' => 0x5B, 'ptgRefErr3dV' => 0x5C, - 'ptgAreaErr3dV'=> 0x5D, + 'ptgAreaErr3dV' => 0x5D, 'ptgArrayA' => 0x60, 'ptgFuncA' => 0x61, 'ptgFuncVarA' => 0x62, @@ -216,13 +216,13 @@ class Parser 'ptgRefNA' => 0x6C, 'ptgAreaNA' => 0x6D, 'ptgMemAreaNA' => 0x6E, - 'ptgMemNoMemNA'=> 0x6F, + 'ptgMemNoMemNA' => 0x6F, 'ptgFuncCEA' => 0x78, 'ptgNameXA' => 0x79, 'ptgRef3dA' => 0x7A, 'ptgArea3dA' => 0x7B, 'ptgRefErr3dA' => 0x7C, - 'ptgAreaErr3dA'=> 0x7D, + 'ptgAreaErr3dA' => 0x7D, ]; // Thanks to Michael Meeks and Gnumeric for the initial arg values. From 98e00e8843b6407288d7afcaebf253d76c2bc36b Mon Sep 17 00:00:00 2001 From: Nikolay Ivanov <mrcool.ru@gmail.com> Date: Fri, 12 Aug 2016 17:29:48 +0300 Subject: [PATCH 23/29] iconv illegal character fix --- src/PhpSpreadsheet/Shared/StringHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/PhpSpreadsheet/Shared/StringHelper.php b/src/PhpSpreadsheet/Shared/StringHelper.php index d6a00e8a..c4d43161 100644 --- a/src/PhpSpreadsheet/Shared/StringHelper.php +++ b/src/PhpSpreadsheet/Shared/StringHelper.php @@ -495,7 +495,7 @@ class StringHelper public static function convertEncoding($value, $to, $from) { if (self::getIsIconvEnabled()) { - return iconv($from, $to, $value); + return iconv($from, $to . '//IGNORE//TRANSLIT', $value); } if (self::getIsMbstringEnabled()) { From dbef91004d5ff9133ed5bcadb39f7ef39858d951 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Sun, 28 Aug 2016 16:29:42 +0900 Subject: [PATCH 24/29] Migrate CHANGELOG to Markdown --- CHANGELOG.md | 1652 +++++++++++++++++++++++++++++++++++++++++++++++++ changelog.txt | 1444 ------------------------------------------ 2 files changed, 1652 insertions(+), 1444 deletions(-) create mode 100644 CHANGELOG.md delete mode 100644 changelog.txt diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..cfeee18c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,1652 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/) +and this project adheres to [Semantic Versioning](http://semver.org/). + +## [Unreleased] + +### Added + +- Initial implementation of SUMIFS() function +- Additional codepages +- MemoryDrawing not working in HTML writer [#808](https://github.com/PHPOffice/PHPExcel/issues/808) + +### Changed + +- Start following [SemVer](http://semver.org) properly. + +### Bugfixes + +- Fix to getCell() method when cell reference includes a worksheet reference - @MarkBaker +- Ignore inlineStr type if formula element exists - @ncrypthic [#570](https://github.com/PHPOffice/PHPExcel/issues/570) +- Excel 2007 Reader freezes because of conditional formatting - @rentalhost [#575](https://github.com/PHPOffice/PHPExcel/issues/575) + +### General + +- Whitespace after toRichTextObject() - @MarkBaker [#554](https://github.com/PHPOffice/PHPExcel/issues/554) +- Optimize vlookup() sort - @umpirsky [#548](https://github.com/PHPOffice/PHPExcel/issues/548) +- c:max and c:min elements shall NOT be inside c:orientation elements - @vitalyrepin [#869](https://github.com/PHPOffice/PHPExcel/pull/869) +- Implement actual timezone adjustment into PHPExcel_Shared_Date::PHPToExcel - @sim642 [#489](https://github.com/PHPOffice/PHPExcel/pull/489) + + +## [1.8.1] - 2015-04-30 + +### Bugfixes + +- Fix for Writing an Open Document cell with non-numeric formula - @goncons [#397](https://github.com/PHPOffice/PHPExcel/issues/397) +- Avoid potential divide by zero in basedrawing - @sarciszewski [#329](https://github.com/PHPOffice/PHPExcel/issues/329) +- XML External Entity (XXE) Processing, different behaviour between simplexml_load_string() and simplexml_load_file(). - @ymaerschalck [#405](https://github.com/PHPOffice/PHPExcel/issues/405) +- Fix to ensure that current cell is maintained when executing formula calculations - @MarkBaker +- Keep/set the value on Reader _loadSheetsOnly as NULL, courtesy of Restless-ET - @MarkBaker [#350](https://github.com/PHPOffice/PHPExcel/issues/350) +- Loading an Excel 2007 spreadsheet throws an "Autofilter must be set on a range of cells" exception - @MarkBaker [CodePlex #18105](https://phpexcel.codeplex.com/workitem/18105) +- Fix to autoloader registration for backward compatibility with PHP 5.2.0 not accepting the prepend flag - @MarkBaker [#388](https://github.com/PHPOffice/PHPExcel/issues/388) +- DOM loadHTMLFile() failing with options flags when using PHP < 5.4.0 - @MarkBaker [#384](https://github.com/PHPOffice/PHPExcel/issues/384) +- Fix for percentage operator in formulae for BIFF Writer - @MarkBaker +- Fix to getStyle() call for cell object - @MarkBaker +- Discard Autofilters in Excel2007 Reader when filter range isn't a valid range - @MarkBaker +- Fix invalid NA return in VLOOKUP - @frozenstupidity [#423](https://github.com/PHPOffice/PHPExcel/issues/423) +- "No Impact" conditional formatting fix for NumberFormat - @wiseloren [CodePlex #21454](https://phpexcel.codeplex.com/workitem/21454) +- Bug in Excel2003XML reader, parsing merged cells - @bobwitlox [#467](https://github.com/PHPOffice/PHPExcel/issues/467) +- Fix for CEIL() and FLOOR() when number argument is zero - @MarkBaker [#302](https://github.com/PHPOffice/PHPExcel/issues/302) + +### General + +- Remove cells cleanly when calling RemoveRow() or RemoveColumn() - @MarkBaker +- Small performance improvement for autosize columns - @MarkBaker +- Change the getter/setter for zeroHeight to camel case - @frost-nzcr4 [#379](https://github.com/PHPOffice/PHPExcel/issues/379) +- DefaultValueBinder is too much aggressive when converting string to numeric - @MarkBaker [#394](https://github.com/PHPOffice/PHPExcel/issues/394) +- Default precalculate formulas to false for writers - @MarkBaker +- Set default Cyclic Reference behaviour to 1 to eliminate exception when using a single cyclic iteration in formulae - @MarkBaker + +### Features + +- Some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE - @MarkBaker [#396](https://github.com/PHPOffice/PHPExcel/issues/396) +- Methods to manage most of the existing options for Chart Axis, Major Grid-lines and Minor Grid-lines - @WiktrzGE [#404](https://github.com/PHPOffice/PHPExcel/issues/404) +- ODS read/write comments in the cell - @frost-nzcr4 [#403](https://github.com/PHPOffice/PHPExcel/issues/403) +- Additional Mac CJK codepage definitions - @CQD [#389](https://github.com/PHPOffice/PHPExcel/issues/389) +- Update Worksheet.php getStyleByColumnAndRow() to allow a range of cells rather than just a single cell - @bolovincev [#269](https://github.com/PHPOffice/PHPExcel/issues/269) +- New methods added for testing cell status within merge groups - @MarkBaker +- Handling merge cells in HTML Reader - @cifren/MBaker [#205](https://github.com/PHPOffice/PHPExcel/issues/205) +- Helper to convert basic HTML markup to a Rich Text object - @MarkBaker +- Improved Iterators - @MarkBaker + - New Column Iterator + - Support for row and column ranges + - Improved handling for next/prev + +### Security + +- XML filescan in XML-based Readers to prevent XML Entity Expansion (XEE) - @MarkBaker + - (see http://projects.webappsec.org/w/page/13247002/XML%20Entity%20Expansion for an explanation of XEE injection) attacks + - Reference CVE-2015-3542 - Identification of problem courtesy of Dawid Golunski (Pentest Ltd.) + +## [1.8.0] - 2014-03-02 + +### Bugfixes + +- Undefined variable: fileHandle in CSV Reader - @MarkBaker [CodePlex #19830](https://phpexcel.codeplex.com/workitem/19830) +- Out of memory in style/supervisor.php - @MarkBaker [CodePlex #19968](https://phpexcel.codeplex.com/workitem/19968) +- Style error with merged cells in PDF Writer - @MarkBaker +- Problem with cloning worksheets - @MarkBaker +- Bug fix reading Open Office files - @tavoarcila [#259](https://github.com/PHPOffice/PHPExcel/issues/259) +- Serious bug in absolute cell reference used in shared formula - @MarkBaker [CodePlex #20397](https://phpexcel.codeplex.com/workitem/20397) + - Would also have affected insert/delete column/row- CHOOSE() returns "#VALUE!" if the 1st entry is chosen - @RomanSyroeshko [#267](https://github.com/PHPOffice/PHPExcel/issues/267) +- When duplicating styles, styles shifted by one column to the right - @Gemorroj [#268](https://github.com/PHPOffice/PHPExcel/issues/268) + - Fix also applied to duplicating conditional styles- Fix for formulae that reference a sheet whose name begins with a digit: - @IndrekHaav [#212](https://github.com/PHPOffice/PHPExcel/issues/212) + - these were erroneously identified as numeric values, causing the parser to throw an undefined variable error.- Fixed undefined variable error due to $styleArray being used before it's initialised - @IndrekHaav [CodePlex #16208](https://phpexcel.codeplex.com/workitem/16208) +- ISTEXT() return wrong result if referencing an empty but formatted cell - @PowerKiKi [#273](https://github.com/PHPOffice/PHPExcel/issues/273) +- Binary comparison of strings are case insensitive - @PowerKiKi [#270](https://github.com/PHPOffice/PHPExcel/issues/270), [#31](https://github.com/PHPOffice/PHPExcel/issues/31) +- Insert New Row/Column Before is not correctly updating formula references - @MarkBaker [#275](https://github.com/PHPOffice/PHPExcel/issues/275) +- Passing an array of cells to _generateRow() in the HTML/PDF Writer causes caching problems with last cell in the range - @MarkBaker [#257](https://github.com/PHPOffice/PHPExcel/issues/257) +- Fix to empty worksheet garbage collection when using cell caching - @MarkBaker [#193](https://github.com/PHPOffice/PHPExcel/issues/193) +- Excel2007 does not correctly mark rows as hidden - @Jazzo [#248](https://github.com/PHPOffice/PHPExcel/issues/248) +- Fixed typo in Chart/Layout set/getYMode() - @Roy Shahbazian [#299](https://github.com/PHPOffice/PHPExcel/issues/299) +- Fatal error: Call to a member function cellExists() line: 3327 in calculation.php if referenced worksheet doesn't exist - @EliuFlorez [#279](https://github.com/PHPOffice/PHPExcel/issues/279) +- AdvancedValueBinder "Division by zero"-error - @MarkBaker [#290](https://github.com/PHPOffice/PHPExcel/issues/290) +- Adding Sheet to Workbook Bug - @MarkBaker [CodePlex #20604](https://phpexcel.codeplex.com/workitem/20604) +- Calculation engine incorrectly evaluates empty cells as #VALUE - @MarkBaker [CodePlex #20703](https://phpexcel.codeplex.com/workitem/20703) +- Formula references to cell on another sheet in ODS files - @MarkBaker [CodePlex #20760](https://phpexcel.codeplex.com/workitem/20760) + +### Features + +- LibreOffice created XLSX files results in an empty file. - @MarkBaker [#321](https://github.com/PHPOffice/PHPExcel/issues/321), [#158](https://github.com/PHPOffice/PHPExcel/issues/158), [CodePlex #17824](https://phpexcel.codeplex.com/workitem/17824) +- Implementation of the Excel HLOOKUP() function - @amerov +- Added "Quote Prefix" to style settings (Excel2007 Reader and Writer only) - @MarkBaker +- Added Horizontal FILL alignment for Excel5 and Excel2007 Readers/Writers, and Horizontal DISTRIBUTED alignment for Excel2007 Reader/Writer - @MarkBaker +- Add support for reading protected (RC4 encrypted) .xls files - @trvrnrth [#261](https://github.com/PHPOffice/PHPExcel/issues/261) + +### General + +- Adding support for macros, Ribbon in Excel 2007 - @LWol [#252](https://github.com/PHPOffice/PHPExcel/issues/252) +- Remove array_shift in ReferenceHelper::insertNewBefore improves column or row delete speed - @cdhutch [CodePlex #20055](https://phpexcel.codeplex.com/workitem/20055) +- Improve stock chart handling and rendering, with help from Swashata Ghosh - @MarkBaker +- Fix to calculation properties for Excel2007 so that the opening application will only recalculate on load if it's actually required - @MarkBaker +- Modified Excel2007 Writer to default preCalculateFormulas to false - @MarkBaker + - Note that autosize columns will still recalculate affected formulae internally- Functionality to getHighestRow() for a specified column, and getHighestColumn() for a specified row - @dresenhista [#242](https://github.com/PHPOffice/PHPExcel/issues/242) +- Modify PHPExcel_Reader_Excel2007 to use zipClass from PHPExcel_Settings::getZipClass() - @adamriyadi [#247](https://github.com/PHPOffice/PHPExcel/issues/247) + - This allows the use of PCLZip when reading for people that don't have access to ZipArchive +### Security + +- Convert properties to string in OOCalc reader - @infojunkie [#276](https://github.com/PHPOffice/PHPExcel/issues/276) +- Disable libxml external entity loading by default. - @maartenba [#322](https://github.com/PHPOffice/PHPExcel/issues/322) + - This is to prevent XML External Entity Processing (XXE) injection attacks (see http://websec.io/2012/08/27/Preventing-XEE-in-PHP.html for an explanation of XXE injection). + - Reference CVE-2014-2054 + +## [1.7.9] - 2013-06-02 + +### Features + +- Include charts option for HTML Writer - @MarkBaker +- Added composer file - @MarkBaker +- cache_in_memory_gzip "eats" last worksheet line, cache_in_memory doesn't - @MarkBaker [CodePlex #18844](https://phpexcel.codeplex.com/workitem/18844) +- echo statements in HTML.php - @MarkBaker [#104](https://github.com/PHPOffice/PHPExcel/issues/104) + +### Bugfixes + +- Added getStyle() method to Cell object - @MarkBaker +- Error in PHPEXCEL/Calculation.php script on line 2976 (stack pop check) - @Asker [CodePlex #18777](https://phpexcel.codeplex.com/workitem/18777) +- CSV files without a file extension being identified as HTML - @MarkBaker [CodePlex #18794](https://phpexcel.codeplex.com/workitem/18794) +- Wrong check for maximum number of rows in Excel5 Writer - @AndreKR [#66](https://github.com/PHPOffice/PHPExcel/issues/66) +- Cache directory for DiscISAM cache storage cannot be set - @MarkBaker [#67](https://github.com/PHPOffice/PHPExcel/issues/67) +- Fix to Excel2007 Reader for hyperlinks with an anchor fragment (following a #), otherwise they were treated as sheet references - @MarkBaker [CodePlex #17976](https://phpexcel.codeplex.com/workitem/17976) +- getSheetNames() fails on numeric (floating point style) names with trailing zeroes - @MarkBaker [CodePlex #18963](https://phpexcel.codeplex.com/workitem/18963) +- Modify cell's getCalculatedValue() method to return the content of RichText objects rather than the RichText object itself - @MarkBaker +- Fixed formula/formatting bug when removing rows - @techhead [#70](https://github.com/PHPOffice/PHPExcel/issues/70) +- Fix to cellExists for non-existent namedRanges - @alexgann [#63](https://github.com/PHPOffice/PHPExcel/issues/63) +- Sheet View in Excel5 Writer - @Progi1984 [#22](https://github.com/PHPOffice/PHPExcel/issues/22) +- PHPExcel_Worksheet::getCellCollection() may not return last cached cell - @amironov [#82](https://github.com/PHPOffice/PHPExcel/issues/82) +- Rich Text containing UTF-8 characters creating unreadable content with Excel5 Writer - @teso [CodePlex #18551](https://phpexcel.codeplex.com/workitem/18551) +- Work item GH-8/CP11704 : Conditional formatting in Excel 5 Writer - @Progi1984 +- canRead() Error for GoogleDocs ODS files: in ODS files from Google Docs there is no mimetype file - @MarkBaker [#113](https://github.com/PHPOffice/PHPExcel/issues/113) +- "Sheet index is out of bounds." Exception - @MarkBaker [#80](https://github.com/PHPOffice/PHPExcel/issues/80) +- Fixed number format fatal error - @ccorliss [#105](https://github.com/PHPOffice/PHPExcel/issues/105) +- Add DROP TABLE in destructor for SQLite and SQLite3 cache controllers - @MarkBaker +- Fix merged-cell borders on HTML/PDF output - @alexgann [#154](https://github.com/PHPOffice/PHPExcel/issues/154) +- Fix: Hyperlinks break when removing rows - @Shanto [#161](https://github.com/PHPOffice/PHPExcel/issues/161) +- Fix Extra Table Row From Images and Charts - @neclimdul [#166](https://github.com/PHPOffice/PHPExcel/issues/166) + +### General + +- Single cell print area - @MarkBaker [#130](https://github.com/PHPOffice/PHPExcel/issues/130) +- Improved AdvancedValueBinder for currency - @kea [#69](https://github.com/PHPOffice/PHPExcel/issues/69) +- Fix for environments where there is no access to /tmp but to upload_tmp_dir - @MarkBaker + - Provided an option to set the sys_get_temp_dir() call to use the upload_tmp_dir; though by default the standard temp directory will still be used- Search style by identity in PHPExcel_Worksheet::duplicateStyle() - @amironov [#84](https://github.com/PHPOffice/PHPExcel/issues/84) +- Fill SheetView IO in Excel5 - @karak [#85](https://github.com/PHPOffice/PHPExcel/issues/85) +- Memory and Speed improvements in PHPExcel_Reader_Excel5 - @cfhay [CodePlex #18958](https://phpexcel.codeplex.com/workitem/18958) +- Modify listWorksheetNames() and listWorksheetInfo to use XMLReader with streamed XML rather than SimpleXML - @MarkBaker [#78](https://github.com/PHPOffice/PHPExcel/issues/78) +- Restructuring of PHPExcel Exceptions - @dbonsch +- Refactor Calculation Engine from singleton to a Multiton - @MarkBaker + - Ensures that calculation cache is maintained independently for different workbooks + +## [1.7.8] - 2012-10-12 + +### Features + +- Phar builder script to add phar file as a distribution option - @kkamkou +- Refactor PDF Writer to allow use with a choice of PDF Rendering library - @MarkBaker + - rather than restricting to tcPDF + - Current options are tcPDF, mPDF, DomPDF + - tcPDF Library has now been removed from the deployment bundle- Initial version of HTML Reader - @MarkBaker +- Implement support for AutoFilter in PHPExcel_Writer_Excel5 - @Progi1984 +- Modified ERF and ERFC Engineering functions to accept Excel 2010's modified acceptance of negative arguments - @MarkBaker +- Support SheetView `view` attribute (Excel2007) - @k1LoW +- Excel compatibility option added for writing CSV files - @MarkBaker + - While Excel 2010 can read CSV files with a simple UTF-8 BOM, Excel2007 and earlier require UTF-16LE encoded tab-separated files. + - The new setExcelCompatibility(TRUE) option for the CSV Writer will generate files with this formatting for easy import into Excel2007 and below.- Language implementations for Turkish (tr) - @MarkBaker +- Added fraction tests to advanced value binder - @MarkBaker + +### General + +- Allow call to font setUnderline() for underline format to specify a simple boolean for UNDERLINE_NONE or UNDERLINE_SINGLE - @MarkBaker +- Add Currency detection to the Advanced Value Binder - @alexgann +- setCellValueExplicitByColumnAndRow() do not return PHPExcel_Worksheet - @MarkBaker [CodePlex #18404](https://phpexcel.codeplex.com/workitem/18404) +- Reader factory doesn't read anymore XLTX and XLT files - @MarkBaker [CodePlex #18324](https://phpexcel.codeplex.com/workitem/18324) +- Magic __toString() method added to Cell object to return raw data value as a string - @MarkBaker +- Add cell indent to html rendering - @alexgann + +### Bugfixes + +- ZeroHeight for rows in sheet format - @Raghav1981 +- OOCalc cells containing <text:span> inside the <text:p> tag - @cyberconte +- Fix to listWorksheetInfo() method for OOCalc Reader - @schir1964 +- Support for "e" (epoch) date format mask - @MarkBaker + - Rendered as a 4-digit CE year in non-Excel outputs- Background color cell is always black when editing cell - @MarkBaker +- Allow "no impact" to formats on Conditional Formatting - @MarkBaker +- OOCalc Reader fix for NULL cells - @wackonline +- Fix to excel2007 Chart Writer when a $plotSeriesValues is empty - @seltzlab +- Various fixes to Chart handling - @MarkBaker +- Error loading xlsx file with column breaks - @MarkBaker [CodePlex #18370](https://phpexcel.codeplex.com/workitem/18370) +- OOCalc Reader now handles percentage and currency data types - @MarkBaker +- mb_stripos empty delimiter - @MarkBaker +- getNestingLevel() Error on Excel5 Read - @takaakik +- Fix to Excel5 Reader when cell annotations are defined before their referenced text objects - @MarkBaker +- OOCalc Reader modified to process number-rows-repeated - @MarkBaker +- Chart Title compatibility on Excel 2007 - @MarkBaker [CodePlex #18377](https://phpexcel.codeplex.com/workitem/18377) +- Chart Refresh returning cell reference rather than values - @MarkBaker [CodePlex #18146](https://phpexcel.codeplex.com/workitem/18146) +- Autoshape being identified in twoCellAnchor when includeCharts is TRUE triggering load error - @MarkBaker [CodePlex #18145](https://phpexcel.codeplex.com/workitem/18145) +- v-type texts for series labels now recognised and parsed correctly - @MarkBaker [CodePlex #18325](https://phpexcel.codeplex.com/workitem/18325) +- load file failed if the file has no extensionType - @wolf5x [CodePlex #18492](https://phpexcel.codeplex.com/workitem/18492) +- Pattern fill colours in Excel2007 Style Writer - @dverspui +- Excel2007 Writer order of font style elements to conform with Excel2003 using compatibility pack - @MarkBaker +- Problems with $_activeSheetIndex when decreased below 0. - @MarkBaker [CodePlex #18425](https://phpexcel.codeplex.com/workitem/18425) +- PHPExcel_CachedObjectStorage_SQLite3::cacheMethodIsAvailable() uses class_exists - autoloader throws error - @MarkBaker [CodePlex #18597](https://phpexcel.codeplex.com/workitem/18597) +- Cannot access private property PHPExcel_CachedObjectStorageFactory::$_cacheStorageMethod - @MarkBaker [CodePlex #18598](https://phpexcel.codeplex.com/workitem/18598) +- Data titles for charts - @MarkBaker [CodePlex #18397](https://phpexcel.codeplex.com/workitem/18397) + - PHPExcel_Chart_Layout now has methods for getting/setting switches for displaying/hiding chart data labels- Discard single cell merge ranges when reading (stupid that Excel allows them in the first place) - @MarkBaker +- Discard hidden autoFilter named ranges - @MarkBaker + + +## [1.7.7] - 2012-05-19 + +### Bugfixes + +- Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916) +- Change iterators to implement Iterator rather than extend CachingIterator, as a fix for PHP 5.4. changes in SPL - @MarkBaker +- Invalid cell coordinate in Autofilter for Excel2007 Writer - @MarkBaker [CodePlex #15459](https://phpexcel.codeplex.com/workitem/15459) +- PCLZip library issue - @MarkBaker [CodePlex #15518](https://phpexcel.codeplex.com/workitem/15518) +- Excel2007 Reader canRead function bug - @MarkBaker [CodePlex #15537](https://phpexcel.codeplex.com/workitem/15537) +- Support for Excel functions whose return can be used as either a value or as a cell reference depending on its context within a formula - @MarkBaker +- ini_set() call in Calculation class destructor - @gilles06 [CodePlex #15707](https://phpexcel.codeplex.com/workitem/15707) +- RangeToArray strange array keys - @MarkBaker [CodePlex #15786](https://phpexcel.codeplex.com/workitem/15786) +- INDIRECT() function doesn't work with named ranges - @MarkBaker [CodePlex #15762](https://phpexcel.codeplex.com/workitem/15762) +- Locale-specific fix to text functions when passing a boolean argument instead of a string - @MarkBaker +- reader/CSV fails on this file - @MarkBaker [CodePlex #16246](https://phpexcel.codeplex.com/workitem/16246) + - auto_detect_line_endings now set in CSV reader- $arguments improperly used in CachedObjectStorage/PHPTemp.php - @MarkBaker [CodePlex #16212](https://phpexcel.codeplex.com/workitem/16212) +- Bug In Cache System (cell reference when throwing caching errors) - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643) +- PHP Invalid index notice on writing excel file when active sheet has been deleted - @MarkBaker [CodePlex #16895](https://phpexcel.codeplex.com/workitem/16895) +- External links in Excel2010 files cause Fatal error - @MarkBaker [CodePlex #16956](https://phpexcel.codeplex.com/workitem/16956) +- Previous calculation engine error conditions trigger cyclic reference errors - @MarkBaker [CodePlex #16960](https://phpexcel.codeplex.com/workitem/16960) +- PHPExcel_Style::applyFromArray() returns null rather than style object in advanced mode - @mkopinsky [CodePlex #16266](https://phpexcel.codeplex.com/workitem/16266) +- Cell::getFormattedValue returns RichText object instead of string - @fauvel [CodePlex #16958](https://phpexcel.codeplex.com/workitem/16958) +- Indexed colors do not refer to Excel's indexed colors? - @MarkBaker [CodePlex #17166](https://phpexcel.codeplex.com/workitem/17166) +- Indexed colors should be consistent with Excel and start from 1 (current index starts at 0) - @MarkBaker [CodePlex #17199](https://phpexcel.codeplex.com/workitem/17199) +- Named Range definition in .xls when sheet reeference is quote wrapped - @MarkBaker [CodePlex #17262](https://phpexcel.codeplex.com/workitem/17262) +- duplicateStyle() method doesn't duplicate conditional formats - @MarkBaker [CodePlex #17403](https://phpexcel.codeplex.com/workitem/17403) + - Added an equivalent duplicateConditionalStyle() method for duplicating conditional styles- =sumproduct(A,B) <> =sumproduct(B,A) in xlsx - @bnr [CodePlex #17501](https://phpexcel.codeplex.com/workitem/17501) + +### Features + +- OOCalc cells contain same data bug? - @cyberconte [CodePlex #17471](https://phpexcel.codeplex.com/workitem/17471) +- listWorksheetInfo() method added to Readers... courtesy of Christopher Mullins - @schir1964 +- Options for cell caching using Igbinary and SQLite/SQlite3. - @MarkBaker +- Additional row iterator options: allow a start row to be defined in the constructor; seek(), and prev() methods added. - @MarkBaker +- Implement document properties in Excel5 writer - @Progi1984 [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759) + +### General + +- Implement chart functionality (EXPERIMENTAL) - @MarkBaker [CodePlex #16](https://phpexcel.codeplex.com/workitem/16) + - Initial definition of chart objects. + - Reading Chart definitions through the Excel2007 Reader + - Facility to render charts to images using the 3rd-party jpgraph library + - Writing Charts using the Excel2007 Writer- Fix to build to ensure that Examples are included with the documentation - @MarkBaker +- Reduce cell caching overhead using dirty flag to ensure that cells are only rewritten to the cache if they have actually been changed - @MarkBaker +- Improved memory usage in CSV Writer - @MarkBaker +- Improved speed and memory usage in Excel5 Writer - @MarkBaker +- Experimental - @MarkBaker + - Added getHighestDataColumn(), getHighestDataRow(), getHighestRowAndColumn() and calculateWorksheetDataDimension() methods for the worksheet that return the highest row and column that have cell records- Support for Rich-Text in PHPExcel_Writer_Excel5 - @Progi1984 [CodePlex #8916](https://phpexcel.codeplex.com/workitem/8916) +- Two easy to fix Issues concerning PHPExcel_Token_Stack (l10n/UC) - @MarkBaker [CodePlex #15405](https://phpexcel.codeplex.com/workitem/15405) +- Locale file paths not fit for windows - @MarkBaker [CodePlex #15461](https://phpexcel.codeplex.com/workitem/15461) +- Add file directory as a cache option for cache_to_discISAM - @MarkBaker [CodePlex #16643](https://phpexcel.codeplex.com/workitem/16643) +- Datatype.php & constant TYPE_NULL - @MarkBaker [CodePlex #16923](https://phpexcel.codeplex.com/workitem/16923) +- Ensure use of system temp directory for all temporary work files, unless explicitly specified - @MarkBaker +- [Patch] faster stringFromColumnIndex() - @char101 [CodePlex #16359](https://phpexcel.codeplex.com/workitem/16359) +- Fix for projects that still use old autoloaders - @whit1206 [CodePlex #16028](https://phpexcel.codeplex.com/workitem/16028) +- Unknown codepage: 10007 - @atz [CodePlex #17024](https://phpexcel.codeplex.com/workitem/17024) + - Additional Mac codepages + +## [1.7.6] - 2011-02-27 + +### Features + +- Provide option to use PCLZip as an alternative to ZipArchive. - @MarkBaker + - This allows the writing of Excel2007 files, even without ZipArchive enabled (it does require zlib), or when php_zip is one of the buggy PHP 5.2.6 or 5.2.8 versions + - It can be enabled using PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); + - Note that it is not yet implemented as an alternative to ZipArchive for those Readers that are extracting from zips- Added listWorksheetNames() method to Readers that support multiple worksheets in a workbook, allowing a user to extract a list of all the worksheet names from a file without parsing/loading the whole file. - @MarkBaker [CodePlex #14979](https://phpexcel.codeplex.com/workitem/14979) +- Speed boost and memory reduction in the Worksheet toArray() method. - @MarkBaker +- Added new rangeToArray() and namedRangeToArray() methods to the PHPExcel_Worksheet object. - @MarkBaker + - Functionally, these are identical to the toArray() method, except that they take an additional first parameter of a Range (e.g. 'B2:C3') or a Named Range name. + - Modified the toArray() method so that it actually uses rangeToArray().- Added support for cell comments in the OOCalc, Gnumeric and Excel2003XML Readers, and in the Excel5 Reader - @MarkBaker +- Improved toFormattedString() handling for Currency and Accounting formats to render currency symbols - @MarkBaker + +### Bugfixes + +- Implement more Excel calculation functions - @MarkBaker + - Implemented the DAVERAGE(), DCOUNT(), DCOUNTA(), DGET(), DMAX(), DMIN(), DPRODUCT(), DSTDEV(), DSTDEVP(), DSUM(), DVAR() and DVARP() Database functions- Simple =IF() formula disappears - @MarkBaker [CodePlex #14888](https://phpexcel.codeplex.com/workitem/14888) +- PHP Warning: preg_match(): Compilation failed: PCRE does not support \\L, \\l, \\N, \\P, \\p, \\U, \\u, or \\X - @MarkBaker [CodePlex #14898](https://phpexcel.codeplex.com/workitem/14898) +- VLOOKUP choking on parameters in PHPExcel.1.7.5/PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #14901](https://phpexcel.codeplex.com/workitem/14901) +- PHPExcel_Cell::isInRange() incorrect results - offset by one column - @MarkBaker [CodePlex #14973](https://phpexcel.codeplex.com/workitem/14973) +- Treat CodePage of 0 as CP1251 (for .xls files written by applications that don't set the CodePage correctly, such as Apple Numbers) - @MarkBaker +- Need method for removing autoFilter - @MarkBaker [CodePlex #11583](https://phpexcel.codeplex.com/workitem/11583) +- coordinateFromString throws exception for rows greater than 99,999 - @MarkBaker [CodePlex #15029](https://phpexcel.codeplex.com/workitem/15029) +- PHPExcel Excel2007 Reader colour problems with solidfill - @MarkBaker [CodePlex #14999](https://phpexcel.codeplex.com/workitem/14999) +- Formatting get lost and edit a template XLSX file - @MarkBaker [CodePlex #13215](https://phpexcel.codeplex.com/workitem/13215) +- Excel 2007 Reader /writer lost fontcolor - @MarkBaker [CodePlex #14029](https://phpexcel.codeplex.com/workitem/14029) +- file that makes cells go black - @MarkBaker [CodePlex #13374](https://phpexcel.codeplex.com/workitem/13374) +- Minor patchfix for Excel2003XML Reader when XML is defined with a charset attribute - @MarkBaker +- PHPExcel_Worksheet->toArray() index problem - @MarkBaker [CodePlex #15089](https://phpexcel.codeplex.com/workitem/15089) +- Merge cells 'un-merge' when using an existing spreadsheet - @MarkBaker [CodePlex #15094](https://phpexcel.codeplex.com/workitem/15094) +- Worksheet fromArray() only working with 2-D arrays - @MarkBaker [CodePlex #15129](https://phpexcel.codeplex.com/workitem/15129) +- rangeToarray function modified for non-existent cells - @xkeshav [CodePlex #15172](https://phpexcel.codeplex.com/workitem/15172) +- Images not getting copyied with the ->clone function - @MarkBaker [CodePlex #14980](https://phpexcel.codeplex.com/workitem/14980) +- AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @MarkBaker [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576) +- Fix Excel5 Writer so that it only writes column dimensions for columns that are actually used rather than the full range (A to IV) - @MarkBaker +- FreezePane causing damaged or modified error - @MarkBaker [CodePlex #15198](https://phpexcel.codeplex.com/workitem/15198) + - The freezePaneByColumnAndRow() method row argument should default to 1 rather than 0. + - Default row argument for all __ByColumnAndRow() methods should be 1- Column reference rather than cell reference in Print Area definition - @MarkBaker [CodePlex #15121](https://phpexcel.codeplex.com/workitem/15121) + - Fix Excel2007 Writer to handle print areas that are defined as row or column ranges rather than just as cell ranges- Reduced false positives from isDateTimeFormatCode() method by suppressing testing within quoted strings - @MarkBaker +- Caching and tmp partition exhaustion - @MarkBaker [CodePlex #15312](https://phpexcel.codeplex.com/workitem/15312) +- Writing to Variable No Longer Works. $_tmp_dir Missing in PHPExcel\PHPExcel\Shared\OLE\PPS\Root.php - @MarkBaker [CodePlex #15308](https://phpexcel.codeplex.com/workitem/15308) +- Named ranges with dot don't get parsed properly - @MarkBaker [CodePlex #15379](https://phpexcel.codeplex.com/workitem/15379) +- insertNewRowBefore fails to consistently update references - @MarkBaker [CodePlex #15096](https://phpexcel.codeplex.com/workitem/15096) +- "i" is not a valid character for Excel date format masks (in isDateTimeFormatCode() method) - @MarkBaker +- PHPExcel_ReferenceHelper::insertNewBefore() is missing an 'Update worksheet: comments' section - @MKunert [CodePlex #15421](https://phpexcel.codeplex.com/workitem/15421) + +### General + +- Full column/row references in named ranges not supported by updateCellReference() - @MarkBaker [CodePlex #15409](https://phpexcel.codeplex.com/workitem/15409) +- Improved performance (speed), for building the Shared Strings table in the Excel2007 Writer. - @MarkBaker +- Improved performance (speed), for PHP to Excel date conversions - @MarkBaker +- Enhanced SheetViews element structures in the Excel2007 Writer for frozen panes. - @MarkBaker +- Removed Serialized Reader/Writer as these no longer work. - @MarkBaker + + +## [1.7.5] - 2010-12-10 + +### Features + +- Implement Gnumeric File Format - @MarkBaker [CodePlex #8769](https://phpexcel.codeplex.com/workitem/8769) + - Initial work on Gnumeric Reader (Worksheet Data, Document Properties and basic Formatting)- Support for Extended Workbook Properties in Excel2007, Excel5 and OOCalc Readers; support for User-defined Workbook Properties in Excel2007 and OOCalc Readers - @MarkBaker +- Support for Extended and User-defined Workbook Properties in Excel2007 Writer - @MarkBaker +- Provided a setGenerateSheetNavigationBlock(false); option to suppress generation of the sheet navigation block when writing multiple worksheets to HTML - @MarkBaker +- Advanced Value Binder now recognises TRUE/FALSE strings (locale-specific) and converts to boolean - @MarkBaker +- PHPExcel_Worksheet->toArray() is returning truncated values - @MarkBaker [CodePlex #14301](https://phpexcel.codeplex.com/workitem/14301) +- Configure PDF Writer margins based on Excel Worksheet Margin Settings value - @MarkBaker +- Added Contiguous flag for the CSV Reader, when working with Read Filters - @MarkBaker +- Added getFormattedValue() method for cell object - @MarkBaker +- Added strictNullComparison argument to the worksheet fromArray() method - @MarkBaker + +### Bugfixes + +- Fix to toFormattedString() method in PHPExcel_Style_NumberFormat to handle fractions with a # code for the integer part - @MarkBaker +- NA() doesn't propagate in matrix calc - quick fix in JAMA/Matrix.php - @MarkBaker [CodePlex #14143](https://phpexcel.codeplex.com/workitem/14143) +- Excel5 : Formula : String constant containing double quotation mark - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895) +- Excel5 : Formula : Percent - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895) +- Excel5 : Formula : Error constant - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895) +- Excel5 : Formula : Concatenation operator - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895) +- Worksheet clone broken for CachedObjectStorage_Memory - @MarkBaker [CodePlex #14146](https://phpexcel.codeplex.com/workitem/14146) +- PHPExcel_Reader_Excel2007 fails when gradient fill without type is present in a file - @MarkBaker [CodePlex #12998](https://phpexcel.codeplex.com/workitem/12998) +- @ format for numeric strings in XLSX to CSV conversion - @MarkBaker [CodePlex #14176](https://phpexcel.codeplex.com/workitem/14176) +- Advanced Value Binder Not Working? - @MarkBaker [CodePlex #14223](https://phpexcel.codeplex.com/workitem/14223) +- unassigned object variable in PHPExcel->removeCellXfByIndex - @MarkBaker [CodePlex #14226](https://phpexcel.codeplex.com/workitem/14226) +- problem with getting cell values from another worksheet... (if cell doesn't exist) - @MarkBaker [CodePlex #14236](https://phpexcel.codeplex.com/workitem/14236) +- Setting cell values to one char strings & Trouble reading one character string (thanks gorfou) - @MarkBaker +- Worksheet title exception when duplicate worksheet is being renamed but exceeds the 31 character limit - @MarkBaker [CodePlex #14256](https://phpexcel.codeplex.com/workitem/14256) +- Named range with sheet name that contains the $ throws exception when getting the cell - @MarkBaker [CodePlex #14086](https://phpexcel.codeplex.com/workitem/14086) +- Added autoloader to DefaultValueBinder and AdvancedValueBinder - @MarkBaker +- Modified PHPExcel_Shared_Date::isDateTimeFormatCode() to return false if format code begins with "_" or with "0 " to prevent false positives - @MarkBaker + - These leading characters are most commonly associated with number, currency or accounting (or occasionally fraction) formats- BUG : Excel5 and setReadFilter ? - @MarkBaker [CodePlex #14374](https://phpexcel.codeplex.com/workitem/14374) +- Wrong exception message while deleting column - @MarkBaker [CodePlex #14425](https://phpexcel.codeplex.com/workitem/14425) +- Formula evaluation fails with Japanese sheet refs - @MarkBaker [CodePlex #14679](https://phpexcel.codeplex.com/workitem/14679) +- PHPExcel_Writer_PDF does not handle cell borders correctly - @MarkBaker [CodePlex #13559](https://phpexcel.codeplex.com/workitem/13559) +- Style : applyFromArray() for 'allborders' not working - @MarkBaker [CodePlex #14831](https://phpexcel.codeplex.com/workitem/14831) + +### General + +- Using $this when not in object context in Excel5 Reader - @MarkBaker [CodePlex #14837](https://phpexcel.codeplex.com/workitem/14837) +- Removes a unnecessary loop through each cell when applying conditional formatting to a range. - @MarkBaker +- Removed spurious PHP end tags (?>) - @MarkBaker +- Improved performance (speed) and reduced memory overheads, particularly for the Writers, but across the whole library. - @MarkBaker + + +## [1.7.4] - 2010-08-26 + +### Bugfixes + +- Excel5 : Formula : Power - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895) +- Excel5 : Formula : Unary plus - @Progi1984 [CodePlex #7895](https://phpexcel.codeplex.com/workitem/7895) +- Excel5 : Just write the Escher stream if necessary in Worksheet - @Progi1984 +- Syntax errors in memcache.php 1.7.3c - @MarkBaker [CodePlex #13433](https://phpexcel.codeplex.com/workitem/13433) +- Support for row or column ranges in the calculation engine, e.g. =SUM(C:C) or =SUM(1:2) - @MarkBaker + - Also support in the calculation engine for absolute row or column ranges e.g. =SUM($C:$E) or =SUM($3:5)- Picture problem with Excel 2003 - @Erik Tilt [CodePlex #13455](https://phpexcel.codeplex.com/workitem/13455) +- Wrong variable used in addExternalSheet in PHPExcel.php - @MarkBaker [CodePlex #13484](https://phpexcel.codeplex.com/workitem/13484) +- "Invalid cell coordinate" error when formula access data from an other sheet - @MarkBaker [CodePlex #13515](https://phpexcel.codeplex.com/workitem/13515) +- (related to Work item 13515) Calculation engine confusing cell range worksheet when referencing cells in a different worksheet to the formula - @MarkBaker +- Wrong var naming in Worksheet->garbageCollect() - @MarkBaker [CodePlex #13752](https://phpexcel.codeplex.com/workitem/13752) +- PHPExcel_Style_*::__clone() methods cause cloning loops? - @MarkBaker [CodePlex #13764](https://phpexcel.codeplex.com/workitem/13764) +- Recent builds causing problems loading xlsx files? (ZipArchive issue?) - @MarkBaker [CodePlex #11488](https://phpexcel.codeplex.com/workitem/11488) +- cache_to_apc causes fatal error when processing large data sets - @MarkBaker [CodePlex #13856](https://phpexcel.codeplex.com/workitem/13856) +- OOCalc reader misses first line if it's a 'table-header-row' - @MarkBaker [CodePlex #13880](https://phpexcel.codeplex.com/workitem/13880) +- using cache with copy or clone bug? - @MarkBaker [CodePlex #14011](https://phpexcel.codeplex.com/workitem/14011) + - Fixed $worksheet->copy() or clone $worksheet when using cache_in_memory, cache_in_memory_gzip, cache_in_memory_serialized, cache_to_discISAM, cache_to_phpTemp, cache_to_apc and cache_to_memcache; + - Fixed but untested when using cache_to_wincache. +### Features + +- Standard Deviation functions returning DIV/0 Error when Standard Deviation is zero - @MarkBaker [CodePlex #13450](https://phpexcel.codeplex.com/workitem/13450) +- Support for print area with several ranges in the Excel2007 reader, and improved features for editing print area with several ranges - @MarkBaker +- Improved Cell Exception Reporting - @MarkBaker [CodePlex #13769](https://phpexcel.codeplex.com/workitem/13769) + +### General + +- Fixed problems with reading Excel2007 Properties - @MarkBaker +- PHP Strict Standards: Non-static method PHPExcel_Shared_String::utf16_decode() should not be called statically - @MarkBaker +- Array functions were ignored when loading an existing file containing them, and as a result, they would lose their 'cse' status. - @MarkBaker +- Minor memory tweaks to Excel2007 Writer - @MarkBaker +- Modified ReferenceHelper updateFormulaReferences() method to handle updates to row and column cell ranges (including absolute references e.g. =SUM(A:$E) or =SUM($5:5), and range/cell references that reference a worksheet by name), and to provide both performance and memory improvements. - @MarkBaker +- Modified Excel2007 Reader so that ReferenceHelper class is instantiated only once rather than for every shared formula in a workbook. - @MarkBaker +- Correct handling for additional (synonym) formula tokens in Excel5 Reader - @MarkBaker +- Additional reading of some Excel2007 Extended Properties (Company, Manager) - @MarkBaker + + +## [1.7.3c] - 2010-06-01 + +### Bugfixes + +- Fatal error: Class 'ZipArchive' not found... ...Reader/Excel2007.php on line 217 - @MarkBaker [CodePlex #13012](https://phpexcel.codeplex.com/workitem/13012) +- PHPExcel_Writer_Excel2007 error after 1.7.3b - @MarkBaker [CodePlex #13398](https://phpexcel.codeplex.com/workitem/13398) + + +## [1.7.3b] - 2010-05-31 + +### Bugfixes + +- Infinite loop when reading - @MarkBaker [CodePlex #12903](https://phpexcel.codeplex.com/workitem/12903) +- Wrong method chaining on PHPExcel_Worksheet class - @MarkBaker [CodePlex #13381](https://phpexcel.codeplex.com/workitem/13381) + + +## [1.7.3] - 2010-05-17 + +### General + +- Applied patch 4990 (modified) - @Erik Tilt +- Applied patch 5568 (modified) - @MarkBaker +- Applied patch 5943 - @MarkBaker +- Upgrade build script to use Phing - @MarkBaker [CodePlex #13042](https://phpexcel.codeplex.com/workitem/13042) +- Replacing var with public/private - @Erik Tilt [CodePlex #11586](https://phpexcel.codeplex.com/workitem/11586) +- Applied Anthony's Sterling's Class Autoloader to reduce memory overhead by "Lazy Loading" of classes - @MarkBaker +- Modification to functions that accept a date parameter to support string values containing ordinals as per Excel (English language only) - @MarkBaker +- Modify PHPExcel_Style_NumberFormat::toFormattedString() to handle dates that fall outside of PHP's 32-bit date range - @MarkBaker +- Applied patch 5207 - @MarkBaker + +### Features + +- PHPExcel developer documentation: Set page margins - @Erik Tilt [CodePlex #11970](https://phpexcel.codeplex.com/workitem/11970) +- Special characters and accents in SYLK reader - @Erik Tilt [CodePlex #11038](https://phpexcel.codeplex.com/workitem/11038) +- Implement more Excel calculation functions - @MarkBaker + - Implemented the COUPDAYS(), COUPDAYBS(), COUPDAYSNC(), COUPNCD(), COUPPCD() and PRICE() Financial functions + - Implemented the N() and TYPE() Information functions + - Implemented the HYPERLINK() Lookup and Reference function- Horizontal page break support in PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11526](https://phpexcel.codeplex.com/workitem/11526) +- Introduce method setActiveSheetIndexByName() - @Erik Tilt [CodePlex #11529](https://phpexcel.codeplex.com/workitem/11529) +- AdvancedValueBinder.php: Automatically wrap text when there is new line in string (ALT+"Enter") - @Erik Tilt [CodePlex #11550](https://phpexcel.codeplex.com/workitem/11550) +- Data validation support in PHPExcel_Reader_Excel5 and PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10300](https://phpexcel.codeplex.com/workitem/10300) +- Improve autosize calculation - @MarkBaker [CodePlex #11616](https://phpexcel.codeplex.com/workitem/11616) +- Methods to translate locale-specific function names in formulae - @MarkBaker + - Language implementations for Czech (cs), Danish (da), German (de), English (uk), Spanish (es), Finnish (fi), French (fr), Hungarian (hu), Italian (it), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Brazilian Portuguese (pt_br), Russian (ru) and Swedish (sv)- Implement document properties in Excel5 reader/writer - @Erik Tilt [CodePlex #9759](https://phpexcel.codeplex.com/workitem/9759) + - Fixed so far for PHPExcel_Reader_Excel5- Show/hide row and column headers in worksheet - @Erik Tilt [CodePlex #11849](https://phpexcel.codeplex.com/workitem/11849) +- Can't set font on writing PDF (by key) - @Erik Tilt [CodePlex #11919](https://phpexcel.codeplex.com/workitem/11919) +- Thousands scale (1000^n) support in PHPExcel_Style_NumberFormat::toFormattedString - @Erik Tilt [CodePlex #12096](https://phpexcel.codeplex.com/workitem/12096) +- Implement repeating rows in PDF and HTML writer - @Erik Tilt +- Sheet tabs in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #12289](https://phpexcel.codeplex.com/workitem/12289) +- Add Wincache CachedObjectProvider - @MarkBaker [CodePlex #13041](https://phpexcel.codeplex.com/workitem/13041) +- Configure PDF Writer paper size based on Excel Page Settings value, and provided methods to override paper size and page orientation with the writer - @MarkBaker + - Note PHPExcel defaults to Letter size, while the previous PDF writer enforced A4 size, so PDF writer will now default to Letter- Initial implementation of cell caching: allowing larger workbooks to be managed, but at a cost in speed - @MarkBaker + +### Bugfixes + +- Added an identify() method to the IO Factory that identifies the reader which will be used to load a particular file without actually loading it. - @MarkBaker +- Warning messages with INDEX function having 2 arguments - @MarkBaker [CodePlex #10979](https://phpexcel.codeplex.com/workitem/10979) +- setValue('=') should result in string instead of formula - @Erik Tilt [CodePlex #11473](https://phpexcel.codeplex.com/workitem/11473) +- method _raiseFormulaError should no be private - @MarkBaker [CodePlex #11471](https://phpexcel.codeplex.com/workitem/11471) +- Fatal error: Call to undefined function mb_substr() in ...Classes\PHPExcel\Reader\Excel5.php on line 2903 - @Erik Tilt [CodePlex #11485](https://phpexcel.codeplex.com/workitem/11485) +- getBold(), getItallic(), getStrikeThrough() not always working with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #11487](https://phpexcel.codeplex.com/workitem/11487) +- AdvancedValueBinder.php not working correctly for $cell->setValue('hh:mm:ss') - @Erik Tilt [CodePlex #11492](https://phpexcel.codeplex.com/workitem/11492) +- Fixed leap year handling for the YEARFRAC() Date/Time function when basis ia 1 (Actual/actual) - @MarkBaker +- Warning messages - @MarkBaker [CodePlex #11490](https://phpexcel.codeplex.com/workitem/11490) + - Calculation Engine code modified to enforce strict standards for pass by reference- PHPExcel_Cell_AdvancedValueBinder doesnt work for dates in far future - @Erik Tilt [CodePlex #11483](https://phpexcel.codeplex.com/workitem/11483) +- MSODRAWING bug with long CONTINUE record in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #11528](https://phpexcel.codeplex.com/workitem/11528) +- PHPExcel_Reader_Excel2007 reads print titles as named range when there is more than one sheet - @Erik Tilt [CodePlex #11571](https://phpexcel.codeplex.com/workitem/11571) +- missing @return in phpdocblock in reader classes - @Erik Tilt [CodePlex #11561](https://phpexcel.codeplex.com/workitem/11561) +- AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't - @Erik Tilt [CodePlex #11576](https://phpexcel.codeplex.com/workitem/11576) +- Small numbers escape treatment in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt [CodePlex #11588](https://phpexcel.codeplex.com/workitem/11588) +- Blank styled cells are not blank in output by HTML writer due to &nbsp; - @Erik Tilt [CodePlex #11590](https://phpexcel.codeplex.com/workitem/11590) +- Calculation engine bug: Existing, blank cell + number gives #NUM - @MarkBaker [CodePlex #11587](https://phpexcel.codeplex.com/workitem/11587) +- AutoSize only measures length of first line in cell with multiple lines (ALT+Enter) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608) +- Fatal error running Tests/12serializedfileformat.php (PHPExcel 1.7.2) - @Erik Tilt [CodePlex #11608](https://phpexcel.codeplex.com/workitem/11608) +- Fixed various errors in the WORKDAY() and NETWORKDAYS() Date/Time functions (particularly related to holidays) - @MarkBaker +- Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/SheetView.php:115 - @Erik Tilt [CodePlex #11660](https://phpexcel.codeplex.com/workitem/11660) +- "Unrecognized token 39 in formula" with PHPExcel_Reader_Excel5 (occuring with add-in functions) - @Erik Tilt [CodePlex #11551](https://phpexcel.codeplex.com/workitem/11551) +- Excel2007 reader not reading PHPExcel_Style_Conditional::CONDITION_EXPRESSION - @Erik Tilt [CodePlex #11668](https://phpexcel.codeplex.com/workitem/11668) +- Fix to the BESSELI(), BESSELJ(), BESSELK(), BESSELY() and COMPLEX() Engineering functions to use correct default values for parameters - @MarkBaker +- DATEVALUE function not working for pure time values + allow DATEVALUE() function to handle partial dates (e.g. "1-Jun" or "12/2010") - @MarkBaker [CodePlex #11525](https://phpexcel.codeplex.com/workitem/11525) +- Fix for empty quoted strings in formulae - @MarkBaker +- Trap for division by zero in Bessel functions - @MarkBaker +- Fix to OOCalc Reader to convert semi-colon (;) argument separator in formulae to a comma (,) - @MarkBaker +- PHPExcel_Writer_Excel5_Parser cannot parse formula like =SUM(C$5:C5) - @Erik Tilt [CodePlex #11693](https://phpexcel.codeplex.com/workitem/11693) +- Fix to OOCalc Reader to handle dates that fall outside 32-bit PHP's date range - @MarkBaker +- File->sys_get_temp_dir() can fail in safe mode - @Erik Tilt [CodePlex #11692](https://phpexcel.codeplex.com/workitem/11692) +- Sheet references in Excel5 writer do not work when referenced sheet title contains non-Latin symbols - @Erik Tilt [CodePlex #11727](https://phpexcel.codeplex.com/workitem/11727) +- Bug in HTML writer can result in missing rows in output - @Erik Tilt [CodePlex #11743](https://phpexcel.codeplex.com/workitem/11743) +- setShowGridLines(true) not working with PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #11674](https://phpexcel.codeplex.com/workitem/11674) +- PHPExcel_Worksheet_RowIterator initial position incorrect - @Erik Tilt [CodePlex #11836](https://phpexcel.codeplex.com/workitem/11836) +- PHPExcel_Worksheet_HeaderFooterDrawing Strict Exception thrown (by jshaw86) - @Erik Tilt [CodePlex #11835](https://phpexcel.codeplex.com/workitem/11835) +- Parts of worksheet lost when there are embedded charts (Excel5 reader) - @Erik Tilt [CodePlex #11850](https://phpexcel.codeplex.com/workitem/11850) +- VLOOKUP() function error when lookup value is passed as a cell reference rather than an absolute value - @MarkBaker +- First segment of Rich-Text not read correctly by PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #12041](https://phpexcel.codeplex.com/workitem/12041) +- Fatal Error with getCell('name') when name matches the pattern for a cell reference - @MarkBaker [CodePlex #12048](https://phpexcel.codeplex.com/workitem/12048) +- excel5 writer appears to be swapping image locations - @Erik Tilt [CodePlex #12039](https://phpexcel.codeplex.com/workitem/12039) +- Undefined index: host in ZipStreamWrapper.php, line 94 and line 101 - @Erik Tilt [CodePlex #11954](https://phpexcel.codeplex.com/workitem/11954) +- BIFF8 File Format problem (too short COLINFO record) - @Erik Tilt [CodePlex #11672](https://phpexcel.codeplex.com/workitem/11672) +- Column width sometimes changed after read/write with Excel2007 reader/writer - @Erik Tilt [CodePlex #12121](https://phpexcel.codeplex.com/workitem/12121) +- Worksheet.php throws a fatal error when styling is turned off via setReadDataOnly on the reader - @Erik Tilt [CodePlex #11964](https://phpexcel.codeplex.com/workitem/11964) +- Checking for Circular References in Formulae - @MarkBaker [CodePlex #11851](https://phpexcel.codeplex.com/workitem/11851) + - Calculation Engine code now traps for cyclic references, raising an error or throwing an exception, or allows 1 or more iterations through cyclic references, based on a configuration setting- PNG transparency using Excel2007 writer - @Erik Tilt [CodePlex #12244](https://phpexcel.codeplex.com/workitem/12244) +- Custom readfilter error when cell formulas reference excluded cells (Excel5 reader) - @Erik Tilt [CodePlex #12221](https://phpexcel.codeplex.com/workitem/12221) +- Protection problem in XLS - @Erik Tilt [CodePlex #12288](https://phpexcel.codeplex.com/workitem/12288) +- getColumnDimension()->setAutoSize() incorrect on cells with Number Formatting - @Erik Tilt [CodePlex #12300](https://phpexcel.codeplex.com/workitem/12300) +- Notices reading Excel file with Add-in funcitons (PHPExcel_Reader_Excel5) - @Erik Tilt [CodePlex #12378](https://phpexcel.codeplex.com/workitem/12378) +- Excel5 reader not reading formulas with deleted sheet references - @Erik Tilt [CodePlex #12380](https://phpexcel.codeplex.com/workitem/12380) +- Named range (defined name) scope problems for in PHPExcel - @Erik Tilt [CodePlex #12404](https://phpexcel.codeplex.com/workitem/12404) +- PHP Parse error: syntax error, unexpected T_PUBLIC in PHPExcel/Calculation.php on line 3482 - @Erik Tilt [CodePlex #12423](https://phpexcel.codeplex.com/workitem/12423) +- Named ranges don't appear in name box using Excel5 writer - @Erik Tilt [CodePlex #12505](https://phpexcel.codeplex.com/workitem/12505) +- Many merged cells + autoSize column -> slows down the writer - @Erik Tilt [CodePlex #12509](https://phpexcel.codeplex.com/workitem/12509) +- Incorrect fallback order comment in Shared/Strings.php ConvertEncoding() - @Erik Tilt [CodePlex #12539](https://phpexcel.codeplex.com/workitem/12539) +- IBM AIX iconv() will not work, should revert to mbstring etc. instead - @Erik Tilt [CodePlex #12538](https://phpexcel.codeplex.com/workitem/12538) +- Excel5 writer and mbstring functions overload - @Erik Tilt [CodePlex #12568](https://phpexcel.codeplex.com/workitem/12568) +- OFFSET needs to flattenSingleValue the $rows and $columns args - @MarkBaker [CodePlex #12672](https://phpexcel.codeplex.com/workitem/12672) +- Formula with DMAX(): Notice: Undefined offset: 2 in ...\PHPExcel\Calculation.php on line 2365 - @MarkBaker [CodePlex #12546](https://phpexcel.codeplex.com/workitem/12546) + - Note that the Database functions have not yet been implemented- Call to a member function getParent() on a non-object in Classes\\PHPExcel\\Calculation.php Title is required - @MarkBaker [CodePlex #12839](https://phpexcel.codeplex.com/workitem/12839) +- Cyclic Reference in Formula - @MarkBaker [CodePlex #12935](https://phpexcel.codeplex.com/workitem/12935) +- Memory error...data validation? - @MarkBaker [CodePlex #13025](https://phpexcel.codeplex.com/workitem/13025) + + +## [1.7.2] - 2010-01-11 + +### General + +- Applied patch 4362 - @Erik Tilt +- Applied patch 4363 (modified) - @Erik Tilt +- 1.7.1 Extremely Slow - Refactored PHPExcel_Calculation_Functions::flattenArray() method and set calculation cache timer default to 2.5 seconds - @MarkBaker [CodePlex #10874](https://phpexcel.codeplex.com/workitem/10874) +- Allow formulae to contain line breaks - @MarkBaker +- split() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10910](https://phpexcel.codeplex.com/workitem/10910) +- sys_get_temp_dir() requires PHP 5.2.1, not PHP 5.2 [provide fallback function for PHP 5.2.0] - @Erik Tilt +- Implementation of the ISPMT() Financial function by Matt Groves - @MarkBaker +- Put the example of formula with more arguments in documentation - @MarkBaker [CodePlex #11052](https://phpexcel.codeplex.com/workitem/11052) + +### Features + +- Improved accuracy for the GAMMAINV() Statistical Function - @MarkBaker +- XFEXT record support to fix colors change from Excel5 reader, and copy/paste color change with Excel5 writer - @Erik Tilt [CodePlex #10409](https://phpexcel.codeplex.com/workitem/10409) + - Excel5 reader reads RGB color information in XFEXT records for borders, font color and fill color- Implement more Excel calculation functions - @MarkBaker + - Implemented the FVSCHEDULE(), XNPV(), IRR(), MIRR(), XIRR() and RATE() Financial functions + - Implemented the SUMPRODUCT() Mathematical function + - Implemented the ZTEST() Statistical Function- Multiple print areas in one sheet - @Erik Tilt [CodePlex #10919](https://phpexcel.codeplex.com/workitem/10919) +- Store calculated values in output by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10930](https://phpexcel.codeplex.com/workitem/10930) +- Sheet protection options in Excel5 reader/writer - @Erik Tilt [CodePlex #10939](https://phpexcel.codeplex.com/workitem/10939) +- Modification of the COUNT(), AVERAGE(), AVERAGEA(), DEVSQ, AVEDEV(), STDEV(), STDEVA(), STDEVP(), STDEVPA(), VARA() and VARPA() SKEW() and KURT() functions to correctly handle boolean values depending on whether they're passed in as values, values within a matrix or values within a range of cells. - @MarkBaker +- Cell range selection - @Erik Tilt +- Root-relative path handling - @MarkBaker [CodePlex #10266](https://phpexcel.codeplex.com/workitem/10266) + +### Bugfixes + +- Named Ranges not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #11315](https://phpexcel.codeplex.com/workitem/11315) +- Excel2007 Reader fails to load Apache POI generated Excel - @MarkBaker [CodePlex #11206](https://phpexcel.codeplex.com/workitem/11206) +- Number format is broken when system's thousands separator is empty - @MarkBaker [CodePlex #11154](https://phpexcel.codeplex.com/workitem/11154) +- ReferenceHelper::updateNamedFormulas throws errors if oldName is empty - @MarkBaker [CodePlex #11401](https://phpexcel.codeplex.com/workitem/11401) +- parse_url() fails to parse path to an image in xlsx - @MarkBaker [CodePlex #11296](https://phpexcel.codeplex.com/workitem/11296) +- Workaround for iconv_substr() bug in PHP 5.2.0 - @Erik Tilt [CodePlex #10876](https://phpexcel.codeplex.com/workitem/10876) +- 1 pixel error for image width and height with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10877](https://phpexcel.codeplex.com/workitem/10877) +- Fix to GEOMEAN() Statistical function - @MarkBaker +- setValue('-') and setValue('.') sets numeric 0 instead of 1-character string - @Erik Tilt [CodePlex #10884](https://phpexcel.codeplex.com/workitem/10884) +- Row height sometimes much too low after read with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10885](https://phpexcel.codeplex.com/workitem/10885) +- Diagonal border. Miscellaneous missing support. - @Erik Tilt [CodePlex #10888](https://phpexcel.codeplex.com/workitem/10888) + - Constant PHPExcel_Style_Borders::DIAGONAL_BOTH added to support double-diagonal (cross) + - PHPExcel_Reader_Excel2007 not always reading diagonal borders (only recognizes 'true' and not '1') + - PHPExcel_Reader_Excel5 support for diagonal borders + - PHPExcel_Writer_Excel5 support for diagonal borders- Session bug: Fatal error: Call to a member function bindValue() on a non-object in ...\Classes\PHPExcel\Cell.php on line 217 - @Erik Tilt [CodePlex #10894](https://phpexcel.codeplex.com/workitem/10894) +- Colors messed up saving twice with same instance of PHPExcel_Writer_Excel5 (regression since 1.7.0) - @Erik Tilt [CodePlex #10896](https://phpexcel.codeplex.com/workitem/10896) +- Method PHPExcel_Worksheet::setDefaultStyle is not working - @Erik Tilt [CodePlex #10917](https://phpexcel.codeplex.com/workitem/10917) +- PHPExcel_Reader_CSV::canRead() sometimes says false when it shouldn't - @Erik Tilt [CodePlex #10897](https://phpexcel.codeplex.com/workitem/10897) +- Changes in workbook not picked up between two saves with PHPExcel_Writer_Excel2007 - @Erik Tilt [CodePlex #10922](https://phpexcel.codeplex.com/workitem/10922) +- Decimal and thousands separators missing in HTML and PDF output - @Erik Tilt [CodePlex #10913](https://phpexcel.codeplex.com/workitem/10913) +- Notices with PHPExcel_Reader_Excel5 and named array constants - @Erik Tilt [CodePlex #10936](https://phpexcel.codeplex.com/workitem/10936) +- Calculation engine limitation on 32-bit platform with integers > 2147483647 - @MarkBaker [CodePlex #10938](https://phpexcel.codeplex.com/workitem/10938) +- Shared(?) formulae containing absolute cell references not read correctly using Excel5 Reader - @Erik Tilt [CodePlex #10959](https://phpexcel.codeplex.com/workitem/10959) +- Warning messages with intersection operator involving single cell - @MarkBaker [CodePlex #10962](https://phpexcel.codeplex.com/workitem/10962) +- Infinite loop in Excel5 reader caused by zero-length string in SST - @Erik Tilt [CodePlex #10980](https://phpexcel.codeplex.com/workitem/10980) +- Remove unnecessary cell sorting to improve speed by approx. 18% in HTML and PDF writers - @Erik Tilt [CodePlex #10983](https://phpexcel.codeplex.com/workitem/10983) +- Cannot read A1 cell content - OO_Reader - @MarkBaker [CodePlex #10977](https://phpexcel.codeplex.com/workitem/10977) +- Transliteration failed, invalid encoding - @Erik Tilt [CodePlex #11000](https://phpexcel.codeplex.com/workitem/11000) + + +## [1.7.1] - 2009-11-02 + +### General + +- ereg() function deprecated in PHP 5.3.0 - @Erik Tilt [CodePlex #10687](https://phpexcel.codeplex.com/workitem/10687) +- Writer Interface Inconsequence - setTempDir and setUseDiskCaching - @MarkBaker [CodePlex #10739](https://phpexcel.codeplex.com/workitem/10739) + +### Features + +- Upgrade to TCPDF 4.8.009 - @Erik Tilt +- Support for row and column styles (feature request) - @Erik Tilt + - Basic implementation for Excel2007/Excel5 reader/writer- Hyperlink to local file in Excel5 reader/writer - @Erik Tilt [CodePlex #10459](https://phpexcel.codeplex.com/workitem/10459) +- Color Tab (Color Sheet's name) - @MarkBaker [CodePlex #10472](https://phpexcel.codeplex.com/workitem/10472) +- Border style "double" support in PHPExcel_Writer_HTML - @Erik Tilt [CodePlex #10488](https://phpexcel.codeplex.com/workitem/10488) +- Multi-section number format support in HTML/PDF/CSV writers - @Erik Tilt [CodePlex #10492](https://phpexcel.codeplex.com/workitem/10492) +- Some additional performance tweaks in the calculation engine - @MarkBaker +- Fix result of DB() and DDB() Financial functions to 2dp when in Gnumeric Compatibility mode - @MarkBaker +- Added AMORDEGRC(), AMORLINC() and COUPNUM() Financial function (no validation of parameters yet) - @MarkBaker +- Improved accuracy of TBILLEQ(), TBILLPRICE() and TBILLYIELD() Financial functions when in Excel or Gnumeric mode - @MarkBaker +- Added INDIRECT() Lookup/Reference function (only supports full addresses at the moment) - @MarkBaker +- PHPExcel_Reader_CSV::canRead() improvements - @MarkBaker [CodePlex #10498](https://phpexcel.codeplex.com/workitem/10498) +- Input encoding option for PHPExcel_Reader_CSV - @Erik Tilt [CodePlex #10500](https://phpexcel.codeplex.com/workitem/10500) +- Colored number format support, e.g. [Red], in HTML/PDF output - @Erik Tilt [CodePlex #10493](https://phpexcel.codeplex.com/workitem/10493) +- Color Tab (Color Sheet's name) [Excel5 reader/writer support] - @Erik Tilt [CodePlex #10559](https://phpexcel.codeplex.com/workitem/10559) +- Initial version of SYLK (slk) and Excel 2003 XML Readers (Cell data and basic cell formatting) - @MarkBaker +- Initial version of Open Office Calc (ods) Reader (Cell data only) - @MarkBaker +- Initial use of "pass by reference" in the calculation engine for ROW() and COLUMN() Lookup/Reference functions - @MarkBaker +- COLUMNS() and ROWS() Lookup/Reference functions, and SUBSTITUTE() Text function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- AdvancedValueBinder(): Re-enable zero-padded string-to-number conversion, e.g '0004' -> 4 - @Erik Tilt [CodePlex #10502](https://phpexcel.codeplex.com/workitem/10502) +- Make PHP type match Excel datatype - @Erik Tilt [CodePlex #10600](https://phpexcel.codeplex.com/workitem/10600) +- Change first page number on header - @MarkBaker [CodePlex #10630](https://phpexcel.codeplex.com/workitem/10630) +- Applied patch 3941 - @MarkBaker +- Hidden sheets - @MB,ET [CodePlex #10745](https://phpexcel.codeplex.com/workitem/10745) +- mbstring fallback when iconv is broken - @Erik Tilt [CodePlex #10761](https://phpexcel.codeplex.com/workitem/10761) +- Note, can't yet handle comparison of two matrices - @MarkBaker +- Improved handling for validation and error trapping in a number of functions - @MarkBaker +- Improved support for fraction number formatting - @MarkBaker +- Support Reading CSV with Byte Order Mark (BOM) - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455) + +### Bugfixes + +- addExternalSheet() at specified index - @Erik Tilt [CodePlex #10860](https://phpexcel.codeplex.com/workitem/10860) +- Named range can no longer be passed to worksheet->getCell() - @MarkBaker [CodePlex #10684](https://phpexcel.codeplex.com/workitem/10684) +- RichText HTML entities no longer working in PHPExcel 1.7.0 - @Erik Tilt [CodePlex #10455](https://phpexcel.codeplex.com/workitem/10455) +- Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet [+ support for simultaneous scale/fitToPage] - @Erik Tilt +- Performance issue identified by profiling - @MarkBaker [CodePlex #10469](https://phpexcel.codeplex.com/workitem/10469) +- setSelectedCell is wrong - @Erik Tilt [CodePlex #10473](https://phpexcel.codeplex.com/workitem/10473) +- Images get squeezed/stretched with (Mac) Verdana 10 Excel files using Excel5 reader/writer - @Erik Tilt [CodePlex #10481](https://phpexcel.codeplex.com/workitem/10481) +- Error in argument count for DATEDIF() function - @MarkBaker [CodePlex #10482](https://phpexcel.codeplex.com/workitem/10482) +- updateFormulaReferences is buggy - @MarkBaker [CodePlex #10452](https://phpexcel.codeplex.com/workitem/10452) +- CellIterator returns null Cell if onlyExistingCells is set and key() is in use - @MarkBaker [CodePlex #10485](https://phpexcel.codeplex.com/workitem/10485) +- Wrong RegEx for parsing cell references in formulas - @MarkBaker [CodePlex #10453](https://phpexcel.codeplex.com/workitem/10453) +- Optimisation subverted to devastating effect if IterateOnlyExistingCells is clear - @MarkBaker [CodePlex #10486](https://phpexcel.codeplex.com/workitem/10486) +- Fatal error: Uncaught exception 'Exception' with message 'Unrecognized token 6C in formula'... with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10494](https://phpexcel.codeplex.com/workitem/10494) +- Fractions stored as text are not treated as numbers by PHPExcel's calculation engine - @MarkBaker [CodePlex #10490](https://phpexcel.codeplex.com/workitem/10490) +- AutoFit (autosize) row height not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10503](https://phpexcel.codeplex.com/workitem/10503) +- Fixed problem with null values breaking the calculation stack - @MarkBaker +- Date number formats sometimes fail with PHPExcel_Style_NumberFormat::toFormattedString, e.g. [$-40047]mmmm d yyyy - @Erik Tilt [CodePlex #10524](https://phpexcel.codeplex.com/workitem/10524) +- Fixed minor problem with DATEDIFF YM calculation - @MarkBaker +- Applied patch 3695 - @MarkBaker +- setAutosize() and Date cells not working properly - @Erik Tilt [CodePlex #10536](https://phpexcel.codeplex.com/workitem/10536) +- Time value hour offset in output by HTML/PDF/CSV writers (system timezone problem) - @Erik Tilt [CodePlex #10556](https://phpexcel.codeplex.com/workitem/10556) +- Control characters 0x14-0x1F are not treated by PHPExcel - @Erik Tilt [CodePlex #10558](https://phpexcel.codeplex.com/workitem/10558) +- PHPExcel_Writer_Excel5 not working when open_basedir restriction is in effect - @Erik Tilt [CodePlex #10560](https://phpexcel.codeplex.com/workitem/10560) +- IF formula calculation problem in PHPExcel 1.7.0 (string comparisons) - @MarkBaker [CodePlex #10563](https://phpexcel.codeplex.com/workitem/10563) +- Improved CODE() Text function result for UTF-8 characters - @MarkBaker +- Empty rows are collapsed with HTML/PDF writer - @Erik Tilt [CodePlex #10568](https://phpexcel.codeplex.com/workitem/10568) +- Gaps between rows in output by PHPExcel_Writer_PDF (Upgrading to TCPDF 4.7.003) - @Erik Tilt [CodePlex #10569](https://phpexcel.codeplex.com/workitem/10569) +- Problem reading formulas (Excel5 reader problem with "fake" shared formulas) - @Erik Tilt [CodePlex #10575](https://phpexcel.codeplex.com/workitem/10575) +- Error type in formula: "_raiseFormulaError message is Formula Error: An unexpected error occured" - @MarkBaker [CodePlex #10588](https://phpexcel.codeplex.com/workitem/10588) +- Miscellaneous column width problems in Excel5/Excel2007 writer - @Erik Tilt [CodePlex #10599](https://phpexcel.codeplex.com/workitem/10599) +- Reader/Excel5 'Unrecognized token 2D in formula' in latest version - @Erik Tilt [CodePlex #10615](https://phpexcel.codeplex.com/workitem/10615) +- on php 5.3 PHPExcel 1.7 Excel 5 reader fails in _getNextToken, token = 2C, throws exception - @Erik Tilt [CodePlex #10623](https://phpexcel.codeplex.com/workitem/10623) +- Fatal error when altering styles after workbook has been saved - @Erik Tilt [CodePlex #10617](https://phpexcel.codeplex.com/workitem/10617) +- Images vertically stretched or squeezed when default font size is changed (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10661](https://phpexcel.codeplex.com/workitem/10661) +- Styles not read in "manipulated" Excel2007 workbook - @Erik Tilt [CodePlex #10676](https://phpexcel.codeplex.com/workitem/10676) +- Windows 7 says corrupt file by PHPExcel_Writer_Excel5 when opening in Excel - @Erik Tilt [CodePlex #10059](https://phpexcel.codeplex.com/workitem/10059) +- Calculations sometimes not working with cell references to other sheets - @MarkBaker [CodePlex #10708](https://phpexcel.codeplex.com/workitem/10708) +- Problem with merged cells after insertNewRowBefore() - @Erik Tilt [CodePlex #10706](https://phpexcel.codeplex.com/workitem/10706) +- Applied patch 4023 - @MarkBaker +- Fix to SUMIF() and COUNTIF() Statistical functions for when condition is a match against a string value - @MarkBaker +- PHPExcel_Cell::coordinateFromString should throw exception for bad string parameter - @Erik Tilt [CodePlex #10721](https://phpexcel.codeplex.com/workitem/10721) +- EucrosiaUPC (Thai font) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10723](https://phpexcel.codeplex.com/workitem/10723) +- Improved the return of calculated results when the result value is an array - @MarkBaker +- Allow calculation engine to support Functions prefixed with @ within formulae - @MarkBaker +- Intersection operator (space operator) fatal error with calculation engine - @MarkBaker [CodePlex #10632](https://phpexcel.codeplex.com/workitem/10632) +- Chinese, Japanese, Korean characters show as squares in PDF - @Erik Tilt [CodePlex #10742](https://phpexcel.codeplex.com/workitem/10742) +- sheet title allows invalid characters - @Erik Tilt [CodePlex #10756](https://phpexcel.codeplex.com/workitem/10756) +- Sheet!$A$1 as function argument in formula causes infinite loop in Excel5 writer - @Erik Tilt [CodePlex #10757](https://phpexcel.codeplex.com/workitem/10757) +- Cell range involving name not working with calculation engine - Modified calculation parser to handle range operator (:), but doesn't currently handle worksheet references with spaces or other non-alphameric characters, or trap erroneous references - @MarkBaker [CodePlex #10740](https://phpexcel.codeplex.com/workitem/10740) +- DATE function problem with calculation engine (says too few arguments given) - @MarkBaker [CodePlex #10798](https://phpexcel.codeplex.com/workitem/10798) +- Blank cell can cause wrong calculated value - @MarkBaker [CodePlex #10799](https://phpexcel.codeplex.com/workitem/10799) +- Modified ROW() and COLUMN() Lookup/Reference Functions to return an array when passed a cell range, plus some additional work on INDEX() - @MarkBaker +- Images not showing in Excel 97 using PHPExcel_Writer_Excel5 (patch by Jordi Gutiérrez Hermoso) - @Erik Tilt [CodePlex #10817](https://phpexcel.codeplex.com/workitem/10817) +- When figures are contained in the excel sheet, Reader was stopped - @Erik Tilt [CodePlex #10785](https://phpexcel.codeplex.com/workitem/10785) +- Formulas changed after insertNewRowBefore() - @MarkBaker [CodePlex #10818](https://phpexcel.codeplex.com/workitem/10818) +- Cell range row offset problem with shared formulas using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10825](https://phpexcel.codeplex.com/workitem/10825) +- Warning: Call-time pass-by-reference has been deprecated - @MarkBaker [CodePlex #10832](https://phpexcel.codeplex.com/workitem/10832) +- Image should "Move but don't size with cells" instead of "Move and size with cells" with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10849](https://phpexcel.codeplex.com/workitem/10849) +- Opening a Excel5 generated XLS in Excel 2007 results in header/footer entry not showing on input - @Erik Tilt [CodePlex #10856](https://phpexcel.codeplex.com/workitem/10856) +- addExternalSheet() not returning worksheet - @Erik Tilt [CodePlex #10859](https://phpexcel.codeplex.com/workitem/10859) +- Invalid results in formulas with named ranges - @MarkBaker [CodePlex #10629](https://phpexcel.codeplex.com/workitem/10629) + + +## [1.7.0] - 2009-08-10 + +### General + +- Expand documentation: Number formats - @Erik Tilt +- Class 'PHPExcel_Cell_AdvancedValueBinder' not found - @Erik Tilt + +### Features + +- Change return type of date functions to PHPExcel_Calculation_Functions::RETURNDATE_EXCEL - @MarkBaker +- New RPN and stack-based calculation engine for improved performance of formula calculation - @MarkBaker + - Faster (anything between 2 and 12 times faster than the old parser, depending on the complexity and nature of the formula) + - Significantly more memory efficient when formulae reference cells across worksheets + - Correct behaviour when referencing Named Ranges that exist on several worksheets + - Support for Excel ^ (Exponential) and % (Percentage) operators + - Support for matrices within basic arithmetic formulae (e.g. ={1,2,3;4,5,6;7,8,9}/2) + - Better trapping/handling of NaN and infinity results (return #NUM! error) + - Improved handling of empty parameters for Excel functions + - Optional logging of calculation steps- New calculation engine can be accessed independently of workbooks (for use as a standalone calculator) - @MarkBaker +- Implement more Excel calculation functions - @MarkBaker + - Initial implementation of the COUNTIF() and SUMIF() Statistical functions + - Added ACCRINT() Financial function- Modifications to number format handling for dddd and ddd masks in dates, use of thousand separators even when locale only implements it for money, and basic fraction masks (0 ?/? and ?/?) - @MarkBaker +- Support arbitrary fixed number of decimals in PHPExcel_Style_NumberFormat::toFormattedString() - @Erik Tilt +- Improving performance and memory on data dumps - @Erik Tilt + - Various style optimizations (merging from branch wi6857-memory) + - Moving hyperlink and dataValidation properties from cell to worksheet for lower PHP memory usage- Provide fluent interfaces where possible - @MarkBaker +- Make easy way to apply a border to a rectangular selection - @Erik Tilt +- Support for system window colors in PHPExcel_Reader_Excel5 - @Erik Tilt +- Horizontal center across selection - @Erik Tilt +- Merged cells record, write to full record size in PHPExcel_Writer_Excel5 - @Erik Tilt +- Add page break between sheets in exported PDF - @MarkBaker +- Sanitization of UTF-8 input for cell values - @Erik Tilt +- Read cached calculated value with PHPExcel_Reader_Excel5 - @Erik Tilt +- Miscellaneous CSS improvements for PHPExcel_Writer_HTML - @Erik Tilt +- getProperties: setCompany feature request - @Erik Tilt +- Insert worksheet at a specified index - @MarkBaker +- Change worksheet index - @MarkBaker +- Readfilter for CSV reader - @MarkBaker +- Check value of mbstring.func_overload when saving with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10172](https://phpexcel.codeplex.com/workitem/10172) +- Eliminate dependency of an include path pointing to class directory - @Erik Tilt [CodePlex #10251](https://phpexcel.codeplex.com/workitem/10251) +- Method for getting the correct reader for a certain file (contribution) - @Erik Tilt [CodePlex #10292](https://phpexcel.codeplex.com/workitem/10292) +- Choosing specific row in fromArray method - @Erik Tilt [CodePlex #10287](https://phpexcel.codeplex.com/workitem/10287) +- Shared formula support in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10319](https://phpexcel.codeplex.com/workitem/10319) + +### Bugfixes + +- Right-to-left column direction in worksheet - @MB,ET [CodePlex #10345](https://phpexcel.codeplex.com/workitem/10345) +- PHPExcel_Reader_Excel5 not reading PHPExcel_Style_NumberFormat::FORMAT_NUMBER ('0') - @Erik Tilt +- Fractional row height in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt +- Fractional (decimal) numbers not inserted correctly when locale is other than English - @Erik Tilt +- Fractional calculated value in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 - @Erik Tilt +- Locale aware decimal and thousands separator in exported formats HTML, CSV, PDF - @Erik Tilt +- Cannot Add Image with Space on its Name - @MarkBaker +- Black line at top of every page in output by PHPExcel_Writer_PDF - @Erik Tilt +- Border styles and border colors not showing in HTML output (regression since 1.6.4) - @Erik Tilt +- Hidden screen gridlines setting in worksheet not read by PHPExcel_Reader_Excel2007 - @Erik Tilt +- Some valid sheet names causes corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker +- More than 32,767 characters in a cell gives corrupt Excel file - @Erik Tilt +- Images not getting copyied with the ->copy() function - @Erik Tilt +- Bad calculation of column width setAutoSize(true) function - @Erik Tilt +- Dates are sometimes offset by 1 day in output by HTML and PDF writers depending on system timezone setting - @Erik Tilt +- Wingdings symbol fonts not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10003](https://phpexcel.codeplex.com/workitem/10003) +- White space string prefix stripped by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #10010](https://phpexcel.codeplex.com/workitem/10010) +- The name of the Workbook stream MUST be "Workbook", not "Book" - @Erik Tilt [CodePlex #10023](https://phpexcel.codeplex.com/workitem/10023) +- Avoid message "Microsoft Excel recalculates formulas..." when closing xls file from Excel - @Erik Tilt [CodePlex #10030](https://phpexcel.codeplex.com/workitem/10030) +- Non-unique newline representation causes problems with LEN formula - @Erik Tilt [CodePlex #10031](https://phpexcel.codeplex.com/workitem/10031) +- Newline in cell not showing with PHPExcel_Writer_HTML and PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10033](https://phpexcel.codeplex.com/workitem/10033) +- Rich-Text strings get prefixed by &nbsp; when output by HTML writer - @Erik Tilt [CodePlex #10046](https://phpexcel.codeplex.com/workitem/10046) +- Leading spaces do not appear in output by HTML/PDF writers - @Erik Tilt [CodePlex #10052](https://phpexcel.codeplex.com/workitem/10052) +- Empty Apache POI-generated file can not be read - @MarkBaker [CodePlex #10061](https://phpexcel.codeplex.com/workitem/10061) +- Column width not scaling correctly with font size in HTML and PDF writers - @Erik Tilt [CodePlex #10068](https://phpexcel.codeplex.com/workitem/10068) +- Inaccurate row heights with HTML writer - @Erik Tilt [CodePlex #10069](https://phpexcel.codeplex.com/workitem/10069) +- Reference helper - @MarkBaker +- Excel 5 Named ranges should not be local to the worksheet, but accessible from all worksheets - @MarkBaker +- Row heights are ignored by PHPExcel_Writer_PDF - @Erik Tilt [CodePlex #10088](https://phpexcel.codeplex.com/workitem/10088) +- Write raw XML - @MarkBaker +- removeRow(), removeColumn() not always clearing cell values - @Erik Tilt [CodePlex #10098](https://phpexcel.codeplex.com/workitem/10098) +- Problem reading certain hyperlink records with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10142](https://phpexcel.codeplex.com/workitem/10142) +- Hyperlink cell range read failure with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #10143](https://phpexcel.codeplex.com/workitem/10143) +- 'Column string index can not be empty.' - @MarkBaker [CodePlex #10149](https://phpexcel.codeplex.com/workitem/10149) +- getHighestColumn() sometimes says there are 256 columns with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10204](https://phpexcel.codeplex.com/workitem/10204) +- extractSheetTitle fails when sheet title contains exclamation mark (!) - @Erik Tilt [CodePlex #10220](https://phpexcel.codeplex.com/workitem/10220) +- setTitle() sometimes erroneously appends integer to sheet name - @Erik Tilt [CodePlex #10221](https://phpexcel.codeplex.com/workitem/10221) +- Mac BIFF5 Excel file read failure (missing support for Mac OS Roman character set) - @Erik Tilt [CodePlex #10229](https://phpexcel.codeplex.com/workitem/10229) +- BIFF5 header and footer incorrectly read by PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10230](https://phpexcel.codeplex.com/workitem/10230) +- iconv notices when reading hyperlinks with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10259](https://phpexcel.codeplex.com/workitem/10259) +- Excel5 reader OLE read failure with small Mac BIFF5 Excel files - @Erik Tilt [CodePlex #10252](https://phpexcel.codeplex.com/workitem/10252) +- Problem in reading formula : IF( IF ) with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10272](https://phpexcel.codeplex.com/workitem/10272) +- Error reading formulas referencing external sheets with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10274](https://phpexcel.codeplex.com/workitem/10274) +- Image horizontally stretched when default font size is increased (PHPExcel_Writer_Excel5) - @Erik Tilt [CodePlex #10291](https://phpexcel.codeplex.com/workitem/10291) +- Undefined offset in Reader\Excel5.php on line 3572 - @Erik Tilt [CodePlex #10333](https://phpexcel.codeplex.com/workitem/10333) +- PDF output different then XLS (copied data) - @MarkBaker [CodePlex #10340](https://phpexcel.codeplex.com/workitem/10340) +- Internal hyperlinks with UTF-8 sheet names not working in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #10352](https://phpexcel.codeplex.com/workitem/10352) +- String shared formula result read error with PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #10361](https://phpexcel.codeplex.com/workitem/10361) +- Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/PageSetup.php:338 - @Erik Tilt [CodePlex #10363](https://phpexcel.codeplex.com/workitem/10363) +- Using setLoadSheetsOnly fails if you do not use setReadDataOnly(true) and sheet is not the first sheet - @Erik Tilt [CodePlex #10355](https://phpexcel.codeplex.com/workitem/10355) +- getCalculatedValue() sometimes incorrect with IF formula and 0-values - @MarkBaker [CodePlex #10362](https://phpexcel.codeplex.com/workitem/10362) +- Excel Reader 2007 problem with "shared" formulae when "master" is an error - @MarkBaker +- Named Range Bug, using the same range name on different worksheets - @MarkBaker +- Java code in JAMA classes - @MarkBaker +- getCalculatedValue() not working with some formulas involving error types - @MarkBaker +- evaluation of both return values in an IF() statement returning an error if either result was an error, irrespective of the IF evaluation - @MarkBaker +- Power in formulas: new calculation engine no longer treats ^ as a bitwise XOR operator - @MarkBaker +- Bugfixes and improvements to many of the Excel functions in PHPExcel - @MarkBaker + - Added optional "places" parameter in the BIN2HEX(), BIN2OCT, DEC2BIN(), DEC2OCT(), DEC2HEX(), HEX2BIN(), HEX2OCT(), OCT2BIN() and OCT2HEX() Engineering Functions + - Trap for unbalanced matrix sizes in MDETERM() and MINVERSE() Mathematic and Trigonometric functions + - Fix for default characters parameter value for LEFT() and RIGHT() Text functions + - Fix for GCD() and LCB() Mathematical functions when the parameters include a zero (0) value + - Fix for BIN2OCT() Engineering Function for 2s complement values (which were returning hex values) + - Fix for BESSELK() and BESSELY() Engineering functions + - Fix for IMDIV() Engineering Function when result imaginary component is positive (wasn't setting the sign) + - Fix for ERF() Engineering Function when called with an upper limit value for the integration + - Fix to DATE() Date/Time Function for year value of 0 + - Set ISPMT() function as category FINANCIAL + - Fix for DOLLARDE() and DOLLARFR() Financial functions + - Fix to EFFECT() Financial function (treating $nominal_rate value as a variable name rather than a value) + - Fix to CRITBINOM() Statistical function (CurrentValue and EssentiallyZero treated as constants rather than variables) + - Note that an Error in the function logic can still lead to a permanent loop + - Fix to MOD() Mathematical function to work with floating point results + - Fix for QUOTIENT() Mathematical function + - Fix to HOUR(), MINUTE() and SECOND() Date/Time functions to return an error when passing in a floating point value of 1.0 or greater, or less than 0 + - LOG() Function now correctly returns base-10 log when called with only one parameter, rather than the natural log as the default base + - Modified text functions to handle multibyte character set (UTF-8). + +## [1.6.7] - 2009-04-22 + +### BREAKING CHANGE + +In previous versions of PHPExcel up to and including 1.6.6, +when a cell had a date-like number format code, it was possible to enter a date +directly using an integer PHP-time without converting to Excel date format. +Starting with PHPExcel 1.6.7 this is no longer supported. Refer to the developer +documentation for more information on entering dates into a cell. + +### General + +- Deprecate misspelled setStriketrough() and getStriketrough() methods - @MarkBaker [CodePlex #9416](https://phpexcel.codeplex.com/workitem/9416) + +### Features + +- Performance improvement when saving file - @MarkBaker [CodePlex #9526](https://phpexcel.codeplex.com/workitem/9526) +- Check that sheet title has maximum 31 characters - @MarkBaker [CodePlex #9598](https://phpexcel.codeplex.com/workitem/9598) +- True support for Excel built-in number format codes - @MB, ET [CodePlex #9631](https://phpexcel.codeplex.com/workitem/9631) +- Ability to read defect BIFF5 Excel file without CODEPAGE record - @Erik Tilt [CodePlex #9683](https://phpexcel.codeplex.com/workitem/9683) +- Auto-detect which reader to invoke - @MarkBaker [CodePlex #9701](https://phpexcel.codeplex.com/workitem/9701) +- Deprecate insertion of dates using PHP-time (Unix time) [request for removal of feature] - @Erik Tilt [CodePlex #9214](https://phpexcel.codeplex.com/workitem/9214) +- Support for entering time values like '9:45', '09:45' using AdvancedValueBinder - @Erik Tilt [CodePlex #9747](https://phpexcel.codeplex.com/workitem/9747) + +### Bugfixes + +- DataType dependent horizontal alignment in HTML and PDF writer - @Erik Tilt [CodePlex #9797](https://phpexcel.codeplex.com/workitem/9797) +- Cloning data validation object causes script to stop - @MarkBaker [CodePlex #9375](https://phpexcel.codeplex.com/workitem/9375) +- Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9400](https://phpexcel.codeplex.com/workitem/9400) +- Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9399](https://phpexcel.codeplex.com/workitem/9399) +- Row outline level not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9437](https://phpexcel.codeplex.com/workitem/9437) +- Occasional notices with PHPExcel_Reader_Excel5 when Excel file contains drawing elements - @Erik Tilt [CodePlex #9452](https://phpexcel.codeplex.com/workitem/9452) +- PHPExcel_Reader_Excel5 fails as a whole when workbook contains images other than JPEG/PNG - @Erik Tilt [CodePlex #9453](https://phpexcel.codeplex.com/workitem/9453) +- Excel5 writer checks for iconv but does not necessarily use it - @Erik Tilt [CodePlex #9444](https://phpexcel.codeplex.com/workitem/9444) +- Altering a style on copied worksheet alters also the original - @Erik Tilt [CodePlex #9463](https://phpexcel.codeplex.com/workitem/9463) +- Formulas are incorrectly updated when a sheet is renamed - @MarkBaker [CodePlex #9480](https://phpexcel.codeplex.com/workitem/9480) +- PHPExcel_Worksheet::extractSheetTitle not treating single quotes correctly - @MarkBaker [CodePlex #9513](https://phpexcel.codeplex.com/workitem/9513) +- PHP Warning raised in function array_key_exists - @MarkBaker [CodePlex #9477](https://phpexcel.codeplex.com/workitem/9477) +- getAlignWithMargins() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9599](https://phpexcel.codeplex.com/workitem/9599) +- getScaleWithDocument() gives wrong value when using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9600](https://phpexcel.codeplex.com/workitem/9600) +- PHPExcel_Reader_Excel2007 not reading the first user-defined number format - @MarkBaker [CodePlex #9630](https://phpexcel.codeplex.com/workitem/9630) +- Print area converted to uppercase after read with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9647](https://phpexcel.codeplex.com/workitem/9647) +- Incorrect reading of scope for named range using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9661](https://phpexcel.codeplex.com/workitem/9661) +- Error with pattern (getFillType) and rbg (getRGB) - @MarkBaker [CodePlex #9690](https://phpexcel.codeplex.com/workitem/9690) +- AdvancedValueBinder affected by system timezone setting when inserting date values - @Erik Tilt [CodePlex #9712](https://phpexcel.codeplex.com/workitem/9712) +- PHPExcel_Reader_Excel2007 not reading value of active sheet index - @Erik Tilt [CodePlex #9743](https://phpexcel.codeplex.com/workitem/9743) +- getARGB() sometimes returns SimpleXMLElement object instead of string with PHPExcel_Reader_Excel2007 - @Erik Tilt [CodePlex #9742](https://phpexcel.codeplex.com/workitem/9742) +- Negative image offset causes defects in 14excel5.xls and 20readexcel5.xlsx - @Erik Tilt [CodePlex #9731](https://phpexcel.codeplex.com/workitem/9731) +- HTML & PDF Writer not working with mergeCells (regression since 1.6.5) - @Erik Tilt [CodePlex #9758](https://phpexcel.codeplex.com/workitem/9758) +- Too wide columns with HTML and PDF writer - @Erik Tilt [CodePlex #9774](https://phpexcel.codeplex.com/workitem/9774) +- PDF and cyrillic fonts - @MarkBaker [CodePlex #9775](https://phpexcel.codeplex.com/workitem/9775) +- Percentages not working correctly with HTML and PDF writers (shows 0.25% instead of 25%) - @Erik Tilt [CodePlex #9793](https://phpexcel.codeplex.com/workitem/9793) +- PHPExcel_Writer_HTML creates extra borders around cell contents using setUseInlineCss(true) - @Erik Tilt [CodePlex #9791](https://phpexcel.codeplex.com/workitem/9791) +- Problem with text wrap + merged cells in HTML and PDF writer - @Erik Tilt [CodePlex #9784](https://phpexcel.codeplex.com/workitem/9784) +- Adjacent path separators in include_path causing IOFactory to violate open_basedir restriction - @Erik Tilt [CodePlex #9814](https://phpexcel.codeplex.com/workitem/9814) + + +## [1.6.6] - 2009-03-02 + +### General + +- Improve support for built-in number formats in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #9102](https://phpexcel.codeplex.com/workitem/9102) +- Source files are in both UNIX and DOS formats - changed to UNIX - @Erik Tilt [CodePlex #9281](https://phpexcel.codeplex.com/workitem/9281) + +### Features + +- Update documentation: Which language to write formulas in? - @MarkBaker [CodePlex #9338](https://phpexcel.codeplex.com/workitem/9338) +- Ignore DEFCOLWIDTH records with value 8 in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8817](https://phpexcel.codeplex.com/workitem/8817) +- Support for width, height, offsetX, offsetY for images in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8847](https://phpexcel.codeplex.com/workitem/8847) +- Disk Caching in specific folder - @MarkBaker [CodePlex #8870](https://phpexcel.codeplex.com/workitem/8870) +- Added SUMX2MY2, SUMX2PY2, SUMXMY2, MDETERM and MINVERSE Mathematical and Trigonometric Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added CONVERT Engineering Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added DB, DDB, DISC, DOLLARDE, DOLLARFR, INTRATE, IPMT, PPMT, PRICEDISC, PRICEMAT and RECEIVED Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added ACCRINTM, CUMIPMT, CUMPRINC, TBILLEQ, TBILLPRICE, TBILLYIELD, YIELDDISC and YIELDMAT Financial Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added DOLLAR Text Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added CORREL, COVAR, FORECAST, INTERCEPT, RSQ, SLOPE and STEYX Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added PEARSON Statistical Functions as a synonym for CORREL - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added LINEST, LOGEST (currently only valid for stats = false), TREND and GROWTH Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added RANK and PERCENTRANK Statistical Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Added ROMAN Mathematical Function (Classic form only) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Update documentation to show example of getCellByColumnAndRow($col, $row) - @MarkBaker [CodePlex #8931](https://phpexcel.codeplex.com/workitem/8931) +- Implement worksheet, row and cell iterators - @MarkBaker [CodePlex #8770](https://phpexcel.codeplex.com/workitem/8770) +- Support for arbitrary defined names (named range) - @MarkBaker [CodePlex #9001](https://phpexcel.codeplex.com/workitem/9001) +- Update formulas when sheet title / named range title changes - @MB, ET [CodePlex #9016](https://phpexcel.codeplex.com/workitem/9016) +- Ability to read cached calculated value - @MarkBaker [CodePlex #9103](https://phpexcel.codeplex.com/workitem/9103) +- Support for Excel 1904 calendar date mode (Mac) - @MBaker, ET [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483) +- PHPExcel_Writer_Excel5 improvements writing shared strings table - @Erik Tilt [CodePlex #9194](https://phpexcel.codeplex.com/workitem/9194) +- PHPExcel_Writer_Excel5 iconv fallback when mbstring extension is not enabled - @Erik Tilt [CodePlex #9248](https://phpexcel.codeplex.com/workitem/9248) +- UTF-8 support in font names in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9253](https://phpexcel.codeplex.com/workitem/9253) +- Implement value binding architecture - @MarkBaker [CodePlex #9215](https://phpexcel.codeplex.com/workitem/9215) +- PDF writer not working with UTF-8 - @MarkBaker [CodePlex #6742](https://phpexcel.codeplex.com/workitem/6742) + +### Bugfixes + +- Eliminate duplicate style entries in multisheet workbook written by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9355](https://phpexcel.codeplex.com/workitem/9355) +- Redirect to client browser fails due to trailing white space in class definitions - @Erik Tilt [CodePlex #8810](https://phpexcel.codeplex.com/workitem/8810) +- Spurious column dimension element introduced in blank worksheet after using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8816](https://phpexcel.codeplex.com/workitem/8816) +- Image gets slightly narrower than expected when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8830](https://phpexcel.codeplex.com/workitem/8830) +- Image laid over non-visible row gets squeezed in height when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8831](https://phpexcel.codeplex.com/workitem/8831) +- PHPExcel_Reader_Excel5 fails when there are 10 or more images in the workbook - @Erik Tilt [CodePlex #8860](https://phpexcel.codeplex.com/workitem/8860) +- Different header/footer images in different sheets not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8909](https://phpexcel.codeplex.com/workitem/8909) +- Fractional seconds disappear when using PHPExcel_Reader_Excel2007 and PHPExcel_Reader_Excel5 - @MB, ET [CodePlex #8924](https://phpexcel.codeplex.com/workitem/8924) +- Images not showing in OpenOffice when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7994](https://phpexcel.codeplex.com/workitem/7994) +- Images not showing on print using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #9047](https://phpexcel.codeplex.com/workitem/9047) +- PHPExcel_Writer_Excel5 maximum allowed record size 4 bytes too short - @Erik Tilt [CodePlex #9085](https://phpexcel.codeplex.com/workitem/9085) +- Not numeric strings are formatted as dates and numbers using worksheet's toArray method - @MarkBaker [CodePlex #9119](https://phpexcel.codeplex.com/workitem/9119) +- Excel5 simple formula parsing error - @Erik Tilt [CodePlex #9132](https://phpexcel.codeplex.com/workitem/9132) +- Problems writing dates with CSV - @Erik Tilt [CodePlex #9206](https://phpexcel.codeplex.com/workitem/9206) +- PHPExcel_Reader_Excel5 reader fails with fatal error when reading group shapes - @Erik Tilt [CodePlex #9203](https://phpexcel.codeplex.com/workitem/9203) +- PHPExcel_Writer_Excel5 fails completely when workbook contains more than 57 colors - @Erik Tilt [CodePlex #9231](https://phpexcel.codeplex.com/workitem/9231) +- PHPExcel_Writer_PDF not compatible with autoload - @Erik Tilt [CodePlex #9244](https://phpexcel.codeplex.com/workitem/9244) +- Fatal error: Call to a member function getNestingLevel() on a non-object in PHPExcel/Reader/Excel5.php on line 690 - @Erik Tilt [CodePlex #9250](https://phpexcel.codeplex.com/workitem/9250) +- Notices when running test 04printing.php on PHP 5.2.8 - @MarkBaker [CodePlex #9246](https://phpexcel.codeplex.com/workitem/9246) +- insertColumn() spawns creation of spurious RowDimension - @MarkBaker [CodePlex #9294](https://phpexcel.codeplex.com/workitem/9294) +- Fix declarations for methods in extended Trend classes - @MarkBaker [CodePlex #9296](https://phpexcel.codeplex.com/workitem/9296) +- Fix to parameters for the FORECAST Statistical Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- PDF writer problems with cell height and text wrapping - @MarkBaker [CodePlex #7083](https://phpexcel.codeplex.com/workitem/7083) +- Fix test for calculated value in case the returned result is an array - @MarkBaker +- Column greater than 256 results in corrupt Excel file using PHPExcel_Writer_Excel5 - @Erik Tilt +- Excel Numberformat 0.00 results in non internal decimal places values in toArray() Method - @MarkBaker [CodePlex #9351](https://phpexcel.codeplex.com/workitem/9351) +- setAutoSize not taking into account text rotation - @MB,ET [CodePlex #9356](https://phpexcel.codeplex.com/workitem/9356) +- Call to undefined method PHPExcel_Worksheet_MemoryDrawing::getPath() in PHPExcel/Writer/HTML.php - @Erik Tilt [CodePlex #9372](https://phpexcel.codeplex.com/workitem/9372) + + +## [1.6.5] - 2009-01-05 + +### General + +- Applied patch 2063 - @MarkBaker +- Optimise Shared Strings - @MarkBaker +- Optimise Cell Sorting - @MarkBaker +- Optimise Style Hashing - @MarkBaker +- UTF-8 enhancements - @Erik Tilt +- PHPExcel_Writer_HTML validation errors against strict HTML 4.01 / CSS 2.1 - @Erik Tilt +- Documented work items 6203 and 8110 in manual - @MarkBaker +- Restructure package hierachy so classes can be found more easily in auto-generated API (from work item 8468) - @Erik Tilt + +### Features + +- Redirect output to a client's browser: Update recommendation in documentation - @MarkBaker [CodePlex #8806](https://phpexcel.codeplex.com/workitem/8806) +- PHPExcel_Reader_Excel5 support for print gridlines - @Erik Tilt [CodePlex #7897](https://phpexcel.codeplex.com/workitem/7897) +- Screen gridlines support in Excel5 reader/writer - @Erik Tilt [CodePlex #7899](https://phpexcel.codeplex.com/workitem/7899) +- Option for adding image to spreadsheet from image resource in memory - @MB, ET [CodePlex #7552](https://phpexcel.codeplex.com/workitem/7552) +- PHPExcel_Reader_Excel5 style support for BIFF5 files (Excel 5.0 - Excel 95) - @Erik Tilt [CodePlex #7862](https://phpexcel.codeplex.com/workitem/7862) +- PHPExcel_Reader_Excel5 support for user-defined colors and special built-in colors - @Erik Tilt [CodePlex #7918](https://phpexcel.codeplex.com/workitem/7918) +- Support for freeze panes in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7992](https://phpexcel.codeplex.com/workitem/7992) +- Support for header and footer margins in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7996](https://phpexcel.codeplex.com/workitem/7996) +- Support for active sheet index in Excel5 reader/writer - @Erik Tilt [CodePlex #7997](https://phpexcel.codeplex.com/workitem/7997) +- Freeze panes not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7991](https://phpexcel.codeplex.com/workitem/7991) +- Support for screen zoom level (feature request) - @MB, ET [CodePlex #7993](https://phpexcel.codeplex.com/workitem/7993) +- Support for default style in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8012](https://phpexcel.codeplex.com/workitem/8012) +- Apple iWork / Numbers.app incompatibility - @MarkBaker [CodePlex #8094](https://phpexcel.codeplex.com/workitem/8094) +- Support "between rule" in conditional formatting - @MarkBaker [CodePlex #7931](https://phpexcel.codeplex.com/workitem/7931) +- Comment size, width and height control (feature request) - @MarkBaker [CodePlex #8308](https://phpexcel.codeplex.com/workitem/8308) +- Improve method for storing MERGEDCELLS records in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8418](https://phpexcel.codeplex.com/workitem/8418) +- Support for protectCells() in Excel5 reader/writer - @Erik Tilt [CodePlex #8435](https://phpexcel.codeplex.com/workitem/8435) +- Support for fitToWidth and fitToHeight pagesetup properties in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8472](https://phpexcel.codeplex.com/workitem/8472) +- Support for setShowSummaryBelow() and setShowSummaryRight() in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8489](https://phpexcel.codeplex.com/workitem/8489) +- Support for Excel 1904 calendar date mode (Mac) - @MarkBaker [CodePlex #8483](https://phpexcel.codeplex.com/workitem/8483) +- Excel5 reader: Support for reading images (bitmaps) - @Erik Tilt [CodePlex #7538](https://phpexcel.codeplex.com/workitem/7538) +- Support for default style in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8787](https://phpexcel.codeplex.com/workitem/8787) +- Modified calculate() method to return either an array or the first value from the array for those functions that return arrays rather than single values (e.g the MMULT and TRANSPOSE function). This performance can be modified based on the $returnArrayAsType which can be set/retrieved by calling the setArrayReturnType() and getArrayReturnType() methods of the PHPExcel_Calculation class. - @MarkBaker + +### Bugfixes + +- Added ERROR.TYPE Information Function, MMULT Mathematical and Trigonometry Function, and TRANSPOSE Lookup and Reference Function - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- setPrintGridlines(true) not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7896](https://phpexcel.codeplex.com/workitem/7896) +- Incorrect mapping of fill patterns in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7907](https://phpexcel.codeplex.com/workitem/7907) +- setShowGridlines(false) not working with PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7898](https://phpexcel.codeplex.com/workitem/7898) +- getShowGridlines() gives inverted value when reading sheet with PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7905](https://phpexcel.codeplex.com/workitem/7905) +- User-defined column width becomes slightly larger after read/write with Excel5 - @Erik Tilt [CodePlex #7944](https://phpexcel.codeplex.com/workitem/7944) +- Incomplete border style support in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7949](https://phpexcel.codeplex.com/workitem/7949) +- Conditional formatting "containsText" read/write results in MS Office Excel 2007 crash - @MarkBaker [CodePlex #7928](https://phpexcel.codeplex.com/workitem/7928) +- All sheets are always selected in output when using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7995](https://phpexcel.codeplex.com/workitem/7995) +- COLUMN function warning message during plain read/write - @MarkBaker [CodePlex #8013](https://phpexcel.codeplex.com/workitem/8013) +- setValue(0) results in string data type '0' - @MarkBaker [CodePlex #8155](https://phpexcel.codeplex.com/workitem/8155) +- Styles not removed when removing rows from sheet - @MarkBaker [CodePlex #8226](https://phpexcel.codeplex.com/workitem/8226) +- =IF formula causes fatal error during $objWriter->save() in Excel2007 format - @MarkBaker [CodePlex #8301](https://phpexcel.codeplex.com/workitem/8301) +- Exception thrown reading valid xls file: "Excel file is corrupt. Didn't find CONTINUE record while reading shared strings" - @Erik Tilt [CodePlex #8333](https://phpexcel.codeplex.com/workitem/8333) +- MS Outlook corrupts files generated by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8320](https://phpexcel.codeplex.com/workitem/8320) +- Undefined method PHPExcel_Worksheet::setFreezePane() in ReferenceHelper.php on line 271 - @MarkBaker [CodePlex #8351](https://phpexcel.codeplex.com/workitem/8351) +- Ampersands (&), left and right angles (<, >) in Rich-Text strings leads to corrupt output using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #8401](https://phpexcel.codeplex.com/workitem/8401) +- Print header and footer not supporting UTF-8 in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8408](https://phpexcel.codeplex.com/workitem/8408) +- Vertical page breaks not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8463](https://phpexcel.codeplex.com/workitem/8463) +- Missing support for accounting underline types in PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8476](https://phpexcel.codeplex.com/workitem/8476) +- Infinite loops when reading corrupt xls file using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8482](https://phpexcel.codeplex.com/workitem/8482) +- Sheet protection password not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8566](https://phpexcel.codeplex.com/workitem/8566) +- PHPExcel_Style_NumberFormat::FORMAT_NUMBER ignored by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8596](https://phpexcel.codeplex.com/workitem/8596) +- PHPExcel_Reader_Excel5 fails a whole when workbook contains a chart - @Erik Tilt [CodePlex #8781](https://phpexcel.codeplex.com/workitem/8781) +- Occasional loss of column widths using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #8788](https://phpexcel.codeplex.com/workitem/8788) +- Notices while reading formulas with deleted sheet references using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #8795](https://phpexcel.codeplex.com/workitem/8795) +- Default style not read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #8807](https://phpexcel.codeplex.com/workitem/8807) +- Blank rows occupy too much space in file generated by PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #9341](https://phpexcel.codeplex.com/workitem/9341) + + +## [1.6.4] - 2008-10-27 + +### Features + +- RK record number error in MS developer documentation: 0x007E should be 0x027E - @Erik Tilt [CodePlex #7882](https://phpexcel.codeplex.com/workitem/7882) +- getHighestColumn() returning "@" for blank worksheet causes corrupt output - @MarkBaker [CodePlex #7878](https://phpexcel.codeplex.com/workitem/7878) +- Implement ROW and COLUMN Lookup/Reference Functions (when specified with a parameter) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Implement initial work on OFFSET Lookup/Reference Function (returning address rather than value at address) - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Excel5 reader: Page margins - @Erik Tilt [CodePlex #7416](https://phpexcel.codeplex.com/workitem/7416) +- Excel5 reader: Header & Footer - @Erik Tilt [CodePlex #7417](https://phpexcel.codeplex.com/workitem/7417) +- Excel5 reader support for page setup (paper size etc.) - @Erik Tilt [CodePlex #7449](https://phpexcel.codeplex.com/workitem/7449) +- Improve speed and memory consumption of PHPExcel_Writer_CSV - @MarkBaker [CodePlex #7445](https://phpexcel.codeplex.com/workitem/7445) +- Better recognition of number format in HTML, CSV, and PDF writer - @MarkBaker [CodePlex #7432](https://phpexcel.codeplex.com/workitem/7432) +- Font support: Superscript and Subscript - @MarkBaker [CodePlex #7485](https://phpexcel.codeplex.com/workitem/7485) +- Excel5 reader font support: Super- and subscript - @Erik Tilt [CodePlex #7509](https://phpexcel.codeplex.com/workitem/7509) +- Excel5 reader style support: Text rotation and stacked text - @Erik Tilt [CodePlex #7521](https://phpexcel.codeplex.com/workitem/7521) +- Excel5 reader: Support for hyperlinks - @Erik Tilt [CodePlex #7530](https://phpexcel.codeplex.com/workitem/7530) +- Import sheet by request - @MB, ET [CodePlex #7557](https://phpexcel.codeplex.com/workitem/7557) +- PHPExcel_Reader_Excel5 support for page breaks - @Erik Tilt [CodePlex #7607](https://phpexcel.codeplex.com/workitem/7607) +- PHPExcel_Reader_Excel5 support for shrink-to-fit - @Erik Tilt [CodePlex #7622](https://phpexcel.codeplex.com/workitem/7622) +- Support for error types - @MB, ET [CodePlex #7675](https://phpexcel.codeplex.com/workitem/7675) +- Excel5 reader true formula support - @Erik Tilt [CodePlex #7388](https://phpexcel.codeplex.com/workitem/7388) +- Support for named ranges (defined names) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7701](https://phpexcel.codeplex.com/workitem/7701) +- Support for repeating rows and repeating columns (print titles) in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7781](https://phpexcel.codeplex.com/workitem/7781) +- Support for print area in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7783](https://phpexcel.codeplex.com/workitem/7783) +- Excel5 reader and writer support for horizontal and vertical centering of page - @Erik Tilt [CodePlex #7795](https://phpexcel.codeplex.com/workitem/7795) +- Applied patch 1962 - @MarkBaker +- Excel5 reader and writer support for hidden cells (formulas) - @Erik Tilt [CodePlex #7866](https://phpexcel.codeplex.com/workitem/7866) +- Support for indentation in cells (feature request) - @MB, ET [CodePlex #7612](https://phpexcel.codeplex.com/workitem/7612) + +### Bugfixes + +- Option for reading only specified interval of rows in a sheet - @MB, ET [CodePlex #7828](https://phpexcel.codeplex.com/workitem/7828) +- PHPExcel_Calculation_Functions::DATETIMENOW() and PHPExcel_Calculation_Functions::DATENOW() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367) +- Modified PHPExcel_Shared_Date::FormattedPHPToExcel() and PHPExcel_Shared_Date::ExcelToPHP to force datatype for return values - @MarkBaker [CodePlex #7395](https://phpexcel.codeplex.com/workitem/7395) +- Excel5 reader not producing UTF-8 strings with BIFF5 files - @Erik Tilt [CodePlex #7450](https://phpexcel.codeplex.com/workitem/7450) +- Array constant in formula gives run-time notice with Excel2007 writer - @MarkBaker [CodePlex #7470](https://phpexcel.codeplex.com/workitem/7470) +- PHPExcel_Reader_Excel2007 setReadDataOnly(true) returns Rich-Text - @MarkBaker [CodePlex #7494](https://phpexcel.codeplex.com/workitem/7494) +- PHPExcel_Reader_Excel5 setReadDataOnly(true) returns Rich-Text - @Erik Tilt [CodePlex #7496](https://phpexcel.codeplex.com/workitem/7496) +- Characters before superscript or subscript losing style - @MarkBaker [CodePlex #7497](https://phpexcel.codeplex.com/workitem/7497) +- Subscript not working with HTML writer - @MarkBaker [CodePlex #7507](https://phpexcel.codeplex.com/workitem/7507) +- DefaultColumnDimension not working on first column (A) - @MarkBaker [CodePlex #7508](https://phpexcel.codeplex.com/workitem/7508) +- Negative numbers are stored as text in PHPExcel_Writer_2007 - @MarkBaker [CodePlex #7527](https://phpexcel.codeplex.com/workitem/7527) +- Text rotation and stacked text not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7531](https://phpexcel.codeplex.com/workitem/7531) +- PHPExcel_Shared_Date::isDateTimeFormatCode erroneously says true - @MarkBaker [CodePlex #7536](https://phpexcel.codeplex.com/workitem/7536) +- Different images with same filename in separate directories become duplicates - @MarkBaker [CodePlex #7559](https://phpexcel.codeplex.com/workitem/7559) +- PHPExcel_Reader_Excel5 not returning sheet names as UTF-8 using for Excel 95 files - @Erik Tilt [CodePlex #7568](https://phpexcel.codeplex.com/workitem/7568) +- setAutoSize(true) on empty column gives column width of 10 using PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #7575](https://phpexcel.codeplex.com/workitem/7575) +- setAutoSize(true) on empty column gives column width of 255 using PHPExcel_Writer_Excel5 - @MB, ET [CodePlex #7573](https://phpexcel.codeplex.com/workitem/7573) +- Worksheet_Drawing bug - @MarkBaker [CodePlex #7514](https://phpexcel.codeplex.com/workitem/7514) +- getCalculatedValue() with REPT function causes script to stop - @MarkBaker [CodePlex #7593](https://phpexcel.codeplex.com/workitem/7593) +- getCalculatedValue() with LEN function causes script to stop - @MarkBaker [CodePlex #7594](https://phpexcel.codeplex.com/workitem/7594) +- Explicit fit-to-width (page setup) results in fit-to-height becoming 1 - @MarkBaker [CodePlex #7600](https://phpexcel.codeplex.com/workitem/7600) +- Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet - @MarkBaker [CodePlex #7610](https://phpexcel.codeplex.com/workitem/7610) +- Conditional styles not read properly using PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7516](https://phpexcel.codeplex.com/workitem/7516) +- PHPExcel_Writer_2007: Default worksheet style works only for first sheet - @MarkBaker [CodePlex #7611](https://phpexcel.codeplex.com/workitem/7611) +- Cannot Lock Cells using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #6940](https://phpexcel.codeplex.com/workitem/6940) +- Incorrect cell protection values found when using Excel5 reader - @Erik Tilt [CodePlex #7621](https://phpexcel.codeplex.com/workitem/7621) +- Default row height not working above highest row using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7623](https://phpexcel.codeplex.com/workitem/7623) +- Default column width does not get applied when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7637](https://phpexcel.codeplex.com/workitem/7637) +- Broken support for UTF-8 string formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7642](https://phpexcel.codeplex.com/workitem/7642) +- UTF-8 sheet names not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7643](https://phpexcel.codeplex.com/workitem/7643) +- getCalculatedValue() with ISNONTEXT function causes script to stop - @MarkBaker [CodePlex #7631](https://phpexcel.codeplex.com/workitem/7631) +- Missing BIFF3 functions in PHPExcel_Writer_Excel5: USDOLLAR (YEN), FINDB, SEARCHB, REPLACEB, LEFTB, RIGHTB, MIDB, LENB, ASC, DBCS (JIS) - @Erik Tilt [CodePlex #7652](https://phpexcel.codeplex.com/workitem/7652) +- Excel5 reader doesn't read numbers correctly in 64-bit systems - @Erik Tilt [CodePlex #7663](https://phpexcel.codeplex.com/workitem/7663) +- Missing BIFF5 functions in PHPExcel_Writer_Excel5: ISPMT, DATEDIF, DATESTRING, NUMBERSTRING - @Erik Tilt [CodePlex #7667](https://phpexcel.codeplex.com/workitem/7667) +- Missing BIFF8 functions in PHPExcel_Writer_Excel5: GETPIVOTDATA, HYPERLINK, PHONETIC, AVERAGEA, MAXA, MINA, STDEVPA, VARPA, STDEVA, VARA - @Erik Tilt [CodePlex #7668](https://phpexcel.codeplex.com/workitem/7668) +- Wrong host value in PHPExcel_Shared_ZipStreamWrapper::stream_open() - @MarkBaker [CodePlex #7657](https://phpexcel.codeplex.com/workitem/7657) +- PHPExcel_Reader_Excel5 not reading explicitly entered error types in cells - @Erik Tilt [CodePlex #7676](https://phpexcel.codeplex.com/workitem/7676) +- Boolean and error data types not preserved for formula results in PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7678](https://phpexcel.codeplex.com/workitem/7678) +- PHPExcel_Reader_Excel2007 ignores cell data type - @MarkBaker [CodePlex #7695](https://phpexcel.codeplex.com/workitem/7695) +- PHPExcel_Reader_Excel5 ignores cell data type - @Erik Tilt [CodePlex #7712](https://phpexcel.codeplex.com/workitem/7712) +- PHPExcel_Writer_Excel5 not aware of data type - @Erik Tilt [CodePlex #7587](https://phpexcel.codeplex.com/workitem/7587) +- Long strings sometimes truncated when using PHPExcel_Reader_Excel5 - @Erik Tilt [CodePlex #7713](https://phpexcel.codeplex.com/workitem/7713) +- Direct entry of boolean or error type in cell not supported by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7727](https://phpexcel.codeplex.com/workitem/7727) +- PHPExcel_Reader_Excel2007: Error reading cell with data type string, date number format, and numeric-like cell value - @MarkBaker [CodePlex #7714](https://phpexcel.codeplex.com/workitem/7714) +- Row and column outlines (group indent level) not showing after using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7735](https://phpexcel.codeplex.com/workitem/7735) +- Missing UTF-8 support in number format codes for PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7737](https://phpexcel.codeplex.com/workitem/7737) +- Missing UTF-8 support with PHPExcel_Writer_Excel5 for explicit string in formula - @Erik Tilt [CodePlex #7750](https://phpexcel.codeplex.com/workitem/7750) +- Problem with class constants in PHPExcel_Style_NumberFormat - @MarkBaker [CodePlex #7726](https://phpexcel.codeplex.com/workitem/7726) +- Sometimes errors with PHPExcel_Reader_Excel5 reading hyperlinks - @Erik Tilt [CodePlex #7758](https://phpexcel.codeplex.com/workitem/7758) +- Hyperlink in cell always results in string data type when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7759](https://phpexcel.codeplex.com/workitem/7759) +- Excel file with blank sheet seen as broken in MS Office Excel 2007 when created by PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7771](https://phpexcel.codeplex.com/workitem/7771) +- PHPExcel_Reader_Excel5: Incorrect reading of formula with explicit string containing (escaped) double-quote - @Erik Tilt [CodePlex #7785](https://phpexcel.codeplex.com/workitem/7785) +- getCalculatedValue() fails on formula with sheet name containing (escaped) single-quote - @MarkBaker [CodePlex #7787](https://phpexcel.codeplex.com/workitem/7787) +- getCalculatedValue() fails on formula with explicit string containing (escaped) double-quote - @MarkBaker [CodePlex #7786](https://phpexcel.codeplex.com/workitem/7786) +- Problems with simultaneous repeatRowsAtTop and repeatColumnsAtLeft using Excel2007 reader and writer - @MarkBaker [CodePlex #7780](https://phpexcel.codeplex.com/workitem/7780) +- PHPExcel_Reader_Excel5: Error reading formulas with sheet reference containing special characters - @Erik Tilt [CodePlex #7802](https://phpexcel.codeplex.com/workitem/7802) +- Off-sheet references sheet!A1 not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7831](https://phpexcel.codeplex.com/workitem/7831) +- Repeating rows/columns (print titles), print area not working with PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7834](https://phpexcel.codeplex.com/workitem/7834) +- Formula having datetime number format shows as text when using PHPExcel_Writer_Excel5 - @Erik Tilt [CodePlex #7849](https://phpexcel.codeplex.com/workitem/7849) +- Cannot set formula to hidden using applyFromArray() - @MarkBaker [CodePlex #7863](https://phpexcel.codeplex.com/workitem/7863) +- HTML/PDF Writers limited to 26 columns by calculateWorksheetDimension (erroneous comparison in getHighestColumn() method) - @MarkBaker [CodePlex #7805](https://phpexcel.codeplex.com/workitem/7805) +- Formula returning error type is lost when read by PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #7873](https://phpexcel.codeplex.com/workitem/7873) +- PHPExcel_Reader_Excel5: Cell style lost for last column in group of blank cells - @Erik Tilt [CodePlex #7883](https://phpexcel.codeplex.com/workitem/7883) +- Column width sometimes collapses to auto size using Excel2007 reader/writer - @MarkBaker [CodePlex #7886](https://phpexcel.codeplex.com/workitem/7886) +- Data Validation Formula = 0 crashes Excel - @MarkBaker [CodePlex #9343](https://phpexcel.codeplex.com/workitem/9343) + + +## [1.6.3] - 2008-08-25 + +### General + +- Modified PHPExcel_Shared_Date::PHPToExcel() to force UTC - @MarkBaker [CodePlex #7367](https://phpexcel.codeplex.com/workitem/7367) +- Applied patch 1629 - @MarkBaker +- Applied patch 1644 - @MarkBaker +- Implement repeatRow and repeatColumn in Excel5 writer - @MarkBaker [CodePlex #6485](https://phpexcel.codeplex.com/workitem/6485) + +### Features + +- Remove scene3d filter in Excel2007 drawing - @MarkBaker [CodePlex #6838](https://phpexcel.codeplex.com/workitem/6838) +- Implement CHOOSE and INDEX Lookup/Reference Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Implement CLEAN Text Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Implement YEARFRAC Date/Time Functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Implement 2 options for print/show gridlines - @MarkBaker [CodePlex #6508](https://phpexcel.codeplex.com/workitem/6508) +- Add VLOOKUP function (contribution) - @MarkBaker [CodePlex #7270](https://phpexcel.codeplex.com/workitem/7270) +- Implemented: ShrinkToFit - @MarkBaker [CodePlex #7182](https://phpexcel.codeplex.com/workitem/7182) +- Row heights not updated correctly when inserting new rows - @MarkBaker [CodePlex #7218](https://phpexcel.codeplex.com/workitem/7218) +- Copy worksheets within the same workbook - @MarkBaker [CodePlex #7157](https://phpexcel.codeplex.com/workitem/7157) +- Excel5 reader style support: horizontal and vertical alignment plus text wrap - @Erik Tilt [CodePlex #7290](https://phpexcel.codeplex.com/workitem/7290) +- Excel5 reader support for merged cells - @Erik Tilt [CodePlex #7294](https://phpexcel.codeplex.com/workitem/7294) +- Excel5 reader: Sheet Protection - @Erik Tilt [CodePlex #7296](https://phpexcel.codeplex.com/workitem/7296) +- Excel5 reader: Password for sheet protection - @Erik Tilt [CodePlex #7297](https://phpexcel.codeplex.com/workitem/7297) +- Excel5 reader: Column width - @Erik Tilt [CodePlex #7299](https://phpexcel.codeplex.com/workitem/7299) +- Excel5 reader: Row height - @Erik Tilt [CodePlex #7301](https://phpexcel.codeplex.com/workitem/7301) +- Excel5 reader: Font support - @Erik Tilt [CodePlex #7304](https://phpexcel.codeplex.com/workitem/7304) +- Excel5 reader: support for locked cells - @Erik Tilt [CodePlex #7324](https://phpexcel.codeplex.com/workitem/7324) +- Excel5 reader style support: Fill (background colors and patterns) - @Erik Tilt [CodePlex #7330](https://phpexcel.codeplex.com/workitem/7330) +- Excel5 reader style support: Borders (style and color) - @Erik Tilt [CodePlex #7332](https://phpexcel.codeplex.com/workitem/7332) +- Excel5 reader: Rich-Text support - @Erik Tilt [CodePlex #7346](https://phpexcel.codeplex.com/workitem/7346) +- Read Excel built-in number formats with Excel 2007 reader - @MarkBaker [CodePlex #7313](https://phpexcel.codeplex.com/workitem/7313) +- Excel5 reader: Number format support - @Erik Tilt [CodePlex #7317](https://phpexcel.codeplex.com/workitem/7317) +- Creating a copy of PHPExcel object - @MarkBaker [CodePlex #7362](https://phpexcel.codeplex.com/workitem/7362) +- Excel5 reader: support for row / column outline (group) - @Erik Tilt [CodePlex #7373](https://phpexcel.codeplex.com/workitem/7373) +- Implement default row/column sizes - @MarkBaker [CodePlex #7380](https://phpexcel.codeplex.com/workitem/7380) +- Writer HTML - option to return styles and table separately - @MarkBaker [CodePlex #7364](https://phpexcel.codeplex.com/workitem/7364) + +### Bugfixes + +- Excel5 reader: Support for remaining built-in number formats - @Erik Tilt [CodePlex #7393](https://phpexcel.codeplex.com/workitem/7393) +- Fixed rounding in HOUR MINUTE and SECOND Time functions, and improved performance for these - @MarkBaker +- Fix to TRIM function - @MarkBaker +- Fixed range validation in TIME Functions.php - @MarkBaker +- EDATE and EOMONTH functions now return date values based on the returnDateType flag - @MarkBaker +- Write date values that are the result of a calculation function correctly as Excel serialized dates rather than PHP serialized date values - @MarkBaker +- Excel2007 reader not always reading boolean correctly - @MarkBaker [CodePlex #6690](https://phpexcel.codeplex.com/workitem/6690) +- Columns above IZ - @MarkBaker [CodePlex #6275](https://phpexcel.codeplex.com/workitem/6275) +- Other locale than English causes Excel2007 writer to produce broken xlsx - @MarkBaker [CodePlex #6853](https://phpexcel.codeplex.com/workitem/6853) +- Typo: Number_fromat in NumberFormat.php - @MarkBaker [CodePlex #7061](https://phpexcel.codeplex.com/workitem/7061) +- Bug in Worksheet_BaseDrawing setWidth() - @MarkBaker [CodePlex #6865](https://phpexcel.codeplex.com/workitem/6865) +- PDF writer collapses column width for merged cells - @MarkBaker [CodePlex #6891](https://phpexcel.codeplex.com/workitem/6891) +- Issues with drawings filenames - @MarkBaker [CodePlex #6867](https://phpexcel.codeplex.com/workitem/6867) +- fromArray() local variable isn't defined - @MarkBaker [CodePlex #7073](https://phpexcel.codeplex.com/workitem/7073) +- PHPExcel_Writer_Excel5->setTempDir() not passed to all classes involved in writing to a file - @MarkBaker [CodePlex #7276](https://phpexcel.codeplex.com/workitem/7276) +- Excel5 reader not handling UTF-8 properly - @MarkBaker [CodePlex #7277](https://phpexcel.codeplex.com/workitem/7277) +- If you write a 0 value in cell, cell shows as empty - @MarkBaker [CodePlex #7327](https://phpexcel.codeplex.com/workitem/7327) +- Excel2007 writer: Row height ignored for empty rows - @MarkBaker [CodePlex #7302](https://phpexcel.codeplex.com/workitem/7302) +- Excel2007 (comments related error) - @MarkBaker [CodePlex #7281](https://phpexcel.codeplex.com/workitem/7281) +- Column width in other locale - @MarkBaker [CodePlex #7345](https://phpexcel.codeplex.com/workitem/7345) +- Excel2007 reader not reading underlined Rich-Text - @MarkBaker [CodePlex #7347](https://phpexcel.codeplex.com/workitem/7347) +- Excel5 reader converting booleans to strings - @Erik Tilt [CodePlex #7357](https://phpexcel.codeplex.com/workitem/7357) +- Recursive Object Memory Leak - @MarkBaker [CodePlex #7365](https://phpexcel.codeplex.com/workitem/7365) +- Excel2007 writer ignoring row dimensions without cells - @MarkBaker [CodePlex #7372](https://phpexcel.codeplex.com/workitem/7372) +- Excel5 reader is converting formatted numbers / dates to strings - @Erik Tilt [CodePlex #7382](https://phpexcel.codeplex.com/workitem/7382) + + +## [1.6.2] - 2008-06-23 + +### General + +- Document style array values - @MarkBaker [CodePlex #6088](https://phpexcel.codeplex.com/workitem/6088) +- Applied patch 1195 - @MarkBaker +- Redirecting output to a client’s web browser - http headers - @MarkBaker [CodePlex #6178](https://phpexcel.codeplex.com/workitem/6178) +- Improve worksheet garbage collection - @MarkBaker [CodePlex #6187](https://phpexcel.codeplex.com/workitem/6187) +- Functions that return date values can now be configured to return as Excel serialized date/time, PHP serialized date/time, or a PHP date/time object. - @MarkBaker +- Functions that explicitly accept dates as parameters now permit values as Excel serialized date/time, PHP serialized date/time, a valid date string, or a PHP date/time object. - @MarkBaker +- Implement ACOSH, ASINH and ATANH functions for those operating platforms/PHP versions that don't include these functions - @MarkBaker +- Implement ATAN2 logic reversing the arguments as per Excel - @MarkBaker +- Additional validation of parameters for COMBIN - @MarkBaker + +### Features + +- Fixed validation for CEILING and FLOOR when the value and significance parameters have different signs; and allowed default value of 1 or -1 for significance when in GNUMERIC compatibility mode - @MarkBaker +- Implement ADDRESS, ISLOGICAL, ISTEXT and ISNONTEXT functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Implement COMPLEX, IMAGINARY, IMREAL, IMARGUMENT, IMCONJUGATE, IMABS, IMSUB, IMDIV, IMSUM, IMPRODUCT, IMSQRT, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER IMCOS and IMSIN Engineering functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Implement NETWORKDAYS and WORKDAY Date/Time functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) +- Make cell column AAA available - @MarkBaker [CodePlex #6100](https://phpexcel.codeplex.com/workitem/6100) +- Mark particular cell as selected when opening Excel - @MarkBaker [CodePlex #6095](https://phpexcel.codeplex.com/workitem/6095) +- Multiple sheets in PDF and HTML - @MarkBaker [CodePlex #6120](https://phpexcel.codeplex.com/workitem/6120) +- Implement PHPExcel_ReaderFactory and PHPExcel_WriterFactory - @MarkBaker [CodePlex #6227](https://phpexcel.codeplex.com/workitem/6227) +- Set image root of PHPExcel_Writer_HTML - @MarkBaker [CodePlex #6249](https://phpexcel.codeplex.com/workitem/6249) +- Enable/disable calculation cache - @MarkBaker [CodePlex #6264](https://phpexcel.codeplex.com/workitem/6264) +- PDF writer and multi-line text - @MarkBaker [CodePlex #6259](https://phpexcel.codeplex.com/workitem/6259) +- Feature request - setCacheExpirationTime() - @MarkBaker [CodePlex #6350](https://phpexcel.codeplex.com/workitem/6350) +- Implement late-binding mechanisms to reduce memory footprint - @JB [CodePlex #6370](https://phpexcel.codeplex.com/workitem/6370) +- Implement shared styles - @JB [CodePlex #6430](https://phpexcel.codeplex.com/workitem/6430) +- Copy sheet from external Workbook to active Workbook - @MarkBaker [CodePlex #6391](https://phpexcel.codeplex.com/workitem/6391) + +### Bugfixes + +- Functions in Conditional Formatting - @MarkBaker [CodePlex #6428](https://phpexcel.codeplex.com/workitem/6428) +- Default Style in Excel5 - @MarkBaker [CodePlex #6096](https://phpexcel.codeplex.com/workitem/6096) +- Numbers starting with '+' cause Excel 2007 errors - @MarkBaker [CodePlex #6150](https://phpexcel.codeplex.com/workitem/6150) +- ExcelWriter5 is not PHP5 compatible, using it with E_STRICT results in a bunch of errors (applied patches) - @MarkBaker [CodePlex #6092](https://phpexcel.codeplex.com/workitem/6092) +- Error Reader Excel2007 line 653 foreach ($relsDrawing->Relationship as $ele) - @MarkBaker [CodePlex #6179](https://phpexcel.codeplex.com/workitem/6179) +- Worksheet toArray() screws up DATE - @MarkBaker [CodePlex #6229](https://phpexcel.codeplex.com/workitem/6229) +- References to a Richtext cell in a formula - @MarkBaker [CodePlex #6253](https://phpexcel.codeplex.com/workitem/6253) +- insertNewColumnBefore Bug - @MarkBaker [CodePlex #6285](https://phpexcel.codeplex.com/workitem/6285) +- Error reading Excel2007 file with shapes - @MarkBaker [CodePlex #6319](https://phpexcel.codeplex.com/workitem/6319) +- Determine whether date values need conversion from PHP dates to Excel dates before writing to file, based on the data type (float or integer) - @MarkBaker [CodePlex #6302](https://phpexcel.codeplex.com/workitem/6302) +- Fixes to DATE function when it is given negative input parameters - @MarkBaker +- PHPExcel handles empty cells other than Excel - @MarkBaker [CodePlex #6347](https://phpexcel.codeplex.com/workitem/6347) +- PHPExcel handles 0 and "" as being the same - @MarkBaker [CodePlex #6348](https://phpexcel.codeplex.com/workitem/6348) +- Problem Using Excel2007 Reader for Spreadsheets containing images - @MarkBaker [CodePlex #6357](https://phpexcel.codeplex.com/workitem/6357) +- ShowGridLines ignored when reading/writing Excel 2007 - @MarkBaker [CodePlex #6359](https://phpexcel.codeplex.com/workitem/6359) +- Bug With Word Wrap in Excel 2007 Reader - @MarkBaker [CodePlex #6426](https://phpexcel.codeplex.com/workitem/6426) + + +## [1.6.1] - 2008-04-28 + +### General + +- Fix documentation printing - @MarkBaker [CodePlex #5532](https://phpexcel.codeplex.com/workitem/5532) +- Memory usage improvements - @MarkBaker [CodePlex #5586](https://phpexcel.codeplex.com/workitem/5586) +- Applied patch 990 - @MarkBaker + +### Features + +- Applied patch 991 - @MarkBaker +- Implement PHPExcel_Reader_Excel5 - @BM [CodePlex #2841](https://phpexcel.codeplex.com/workitem/2841) +- Implement "toArray" and "fromArray" method - @MarkBaker [CodePlex #5564](https://phpexcel.codeplex.com/workitem/5564) +- Read shared formula - @MarkBaker [CodePlex #5665](https://phpexcel.codeplex.com/workitem/5665) +- Read image twoCellAnchor - @MarkBaker [CodePlex #5681](https://phpexcel.codeplex.com/workitem/5681) +- &G Image as bg for headerfooter - @MarkBaker [CodePlex #4446](https://phpexcel.codeplex.com/workitem/4446) +- Implement page layout functionality for Excel5 format - @MarkBaker [CodePlex #5834](https://phpexcel.codeplex.com/workitem/5834) + +### Bugfixes + +- Feature request: PHPExcel_Writer_PDF - @MarkBaker [CodePlex #6039](https://phpexcel.codeplex.com/workitem/6039) +- DefinedNames null check - @MarkBaker [CodePlex #5517](https://phpexcel.codeplex.com/workitem/5517) +- Hyperlinks should not always have trailing slash - @MarkBaker [CodePlex #5463](https://phpexcel.codeplex.com/workitem/5463) +- Saving Error - Uncaught exception (#REF! named range) - @MarkBaker [CodePlex #5592](https://phpexcel.codeplex.com/workitem/5592) +- Error when creating Zip file on Linux System (Not Windows) - @MarkBaker [CodePlex #5634](https://phpexcel.codeplex.com/workitem/5634) +- Time incorrecly formated - @MarkBaker [CodePlex #5876](https://phpexcel.codeplex.com/workitem/5876) +- Conditional formatting - second rule not applied - @MarkBaker [CodePlex #5914](https://phpexcel.codeplex.com/workitem/5914) +- PHPExcel_Reader_Excel2007 cannot load PHPExcel_Shared_File - @MarkBaker [CodePlex #5978](https://phpexcel.codeplex.com/workitem/5978) +- Output redirection to web browser - @MarkBaker [CodePlex #6020](https://phpexcel.codeplex.com/workitem/6020) + + +## [1.6.0] - 2008-02-14 + +### Features + +- Use PHPExcel datatypes in formula calculation - @MarkBaker [CodePlex #3156](https://phpexcel.codeplex.com/workitem/3156) +- Center on page when printing - @MarkBaker [CodePlex #5019](https://phpexcel.codeplex.com/workitem/5019) +- Hyperlink to other spreadsheet - @MarkBaker [CodePlex #5099](https://phpexcel.codeplex.com/workitem/5099) +- Set the print area of a worksheet - @MarkBaker [CodePlex #5104](https://phpexcel.codeplex.com/workitem/5104) +- Read "definedNames" property of worksheet - @MarkBaker [CodePlex #5118](https://phpexcel.codeplex.com/workitem/5118) +- Set default style for all cells - @MarkBaker [CodePlex #5338](https://phpexcel.codeplex.com/workitem/5338) +- Named Ranges - @MarkBaker [CodePlex #4216](https://phpexcel.codeplex.com/workitem/4216) + +### Bugfixes + +- Implement worksheet references (Sheet1!A1) - @MarkBaker [CodePlex #5398](https://phpexcel.codeplex.com/workitem/5398) +- Redirect output to a client's web browser - @MarkBaker [CodePlex #4967](https://phpexcel.codeplex.com/workitem/4967) +- "File Error: data may have been lost." seen in Excel 2007 and Excel 2003 SP3 when opening XLS file - @MarkBaker [CodePlex #5008](https://phpexcel.codeplex.com/workitem/5008) +- Bug in style's getHashCode() - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165) +- PHPExcel_Reader not correctly reading numeric values - @MarkBaker [CodePlex #5165](https://phpexcel.codeplex.com/workitem/5165) +- Text rotation is read incorrectly - @MarkBaker [CodePlex #5324](https://phpexcel.codeplex.com/workitem/5324) +- Enclosure " and data " result a bad data : \" instead of "" - @MarkBaker [CodePlex #5326](https://phpexcel.codeplex.com/workitem/5326) +- Formula parser - IF statement returning array instead of scalar - @MarkBaker [CodePlex #5332](https://phpexcel.codeplex.com/workitem/5332) +- setFitToWidth(nbpage) & setFitToWidth(nbpage) work partially - @MarkBaker [CodePlex #5351](https://phpexcel.codeplex.com/workitem/5351) +- Worksheet::setTitle() causes unwanted renaming - @MarkBaker [CodePlex #5361](https://phpexcel.codeplex.com/workitem/5361) +- Hyperlinks not working. Results in broken xlsx file. - @MarkBaker [CodePlex #5407](https://phpexcel.codeplex.com/workitem/5407) + + +## [1.5.5] - 2007-12-24 + +### General + +- Grouping Rows - @MarkBaker [CodePlex #4135](https://phpexcel.codeplex.com/workitem/4135) + +### Features + +- Semi-nightly builds - @MarkBaker [CodePlex #4427](https://phpexcel.codeplex.com/workitem/4427) +- Implement "date" datatype - @MarkBaker [CodePlex #3155](https://phpexcel.codeplex.com/workitem/3155) +- Date format not honored in CSV writer - @MarkBaker [CodePlex #4150](https://phpexcel.codeplex.com/workitem/4150) +- RichText and sharedStrings - @MarkBaker [CodePlex #4199](https://phpexcel.codeplex.com/workitem/4199) +- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) + - Addition of DATE, DATEDIF, DATEVALUE, DAY, DAYS360- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) + - Addition of AVEDEV, HARMEAN and GEOMEAN + - Addition of the BINOMDIST (Non-cumulative only), COUNTBLANK, EXPONDIST, FISHER, FISHERINV, NORMDIST, NORMSDIST, PERMUT, POISSON (Non-cumulative only) and STANDARDIZE Statistical Functions + - Addition of the CEILING, COMBIN, EVEN, FACT, FACTDOUBLE, FLOOR, MULTINOMIAL, ODD, ROUNDDOWN, ROUNDUP, SIGN, SQRTPI and SUMSQ Mathematical Functions + - Addition of the NORMINV, NORMSINV, CONFIDENCE and SKEW Statistical Functions + - Addition of the CRITBINOM, HYPGEOMDIST, KURT, LOGINV, LOGNORMDIST, NEGBINOMDIST and WEIBULL Statistical Functions + - Addition of the LARGE, PERCENTILE, QUARTILE, SMALL and TRIMMEAN Statistical Functions + - Addition of the BIN2HEX, BIN2OCT, DELTA, ERF, ERFC, GESTEP, HEX2BIN, HEX2DEC, HEX2OCT, OCT2BIN and OCT2HEX Engineering Functions + - Addition of the CHIDIST, GAMMADIST and GAMMALN Statistical Functions + - Addition of the GCD, LCM, MROUND and SUBTOTAL Mathematical Functions + - Addition of the LOWER, PROPER and UPPER Text Functions + - Addition of the BETADIST and BETAINV Statistical Functions + - Addition of the CHIINV and GAMMAINV Statistical Functions + - Addition of the SERIESSUM Mathematical Function + - Addition of the CHAR, CODE, FIND, LEN, REPT, SEARCH, T, TRIM Text Functions + - Addition of the FALSE and TRUE Boolean Functions + - Addition of the TDIST and TINV Statistical Functions + - Addition of the EDATE, EOMONTH, YEAR, MONTH, TIME, TIMEVALUE, HOUR, MINUTE, SECOND, WEEKDAY, WEEKNUM, NOW, TODAY and Date/Time Function + - Addition of the BESSELI, BESSELJ, BESSELK and BESSELY Engineering Functions + - Addition of the SLN and SYD Financial Functions + - reworked MODE calculation to handle floating point numbers + - Improved error trapping for invalid input values + - Fix to SMALL, LARGE, PERCENTILE and TRIMMEAN to eliminate non-numeric values + - Added CDF to BINOMDIST and POISSON + - Fix to a potential endless loop in CRITBINOM, together with other bugfixes to the algorithm + - Fix to SQRTPI so that it will work with a real value parameter rather than just integers + - Trap for passing negative values to FACT + - Improved accuracy of the NORMDIST cumulative function, and of the ERF and ERFC functions + - Replicated Excel data-type and error handling for BIN, DEC, OCT and HEX conversion functions + - Replicated Excel data-type and error handling for AND and OR Boolean functions + - Bugfix to MROUND + - Rework of the DATE, DATEVALUE, DAY, DAYS360 and DATEDIF date/Time functions to use Excel dates rather than straight PHP dates + - Rework of the AND, OR Boolean functions to ignore string values + - Rework of the BIN2DEC, BIN2HEX, BIN2OCT, DEC2BIN, DEC2HEX, DEC2OCT Engineering functions to handle two's complement + - Excel, Gnumeric and OpenOffice Calc compatibility flag for functions + - Note, not all functions have yet been written to work with the Gnumeric and OpenOffice Calc compatibility flags + - 1900 or 1904 Calendar flag for date functions + - Reworked ExcelToPHP date method to handle the Excel 1900 leap year + - Note that this will not correctly return values prior to 13-Dec-1901 20:45:52 as this is the minimum value that PHP date serial values can handle. If you need to work with dates prior to this, then an ExcelToPHPObject method has been added which will work correctly with values between Excel's 1900 calendar base date of 1-Jan-1900, and 13-Dec-1901 + - Addition of ExcelToPHPObject date method to return a PHP DateTime object from an Excel date serial value + - PHPToExcel method modified to accept either PHP date serial numbers or PHP DateTime objects + - Addition of FormattedPHPToExcel which will accept a date and time broken to into year, month, day, hour, minute, second and return an Excel date serial value- Control characters in Excel 2007 - @MarkBaker [CodePlex #4485](https://phpexcel.codeplex.com/workitem/4485) +- BaseDrawing::setWidthAndHeight method request - @MarkBaker [CodePlex #4796](https://phpexcel.codeplex.com/workitem/4796) +- Page Setup -> Print Titles -> Sheet -> 'Rows to repeat at top' - @MarkBaker [CodePlex #4798](https://phpexcel.codeplex.com/workitem/4798) + +### Bugfixes + +- Comment functionality - @MarkBaker [CodePlex #4433](https://phpexcel.codeplex.com/workitem/4433) +- Undefined variable in PHPExcel_Writer_Serialized - @MarkBaker [CodePlex #4124](https://phpexcel.codeplex.com/workitem/4124) +- Notice: Object of class PHPExcel_RichText could not be converted to int - @MarkBaker [CodePlex #4125](https://phpexcel.codeplex.com/workitem/4125) +- Excel5Writer: utf8 string not converted to utf16 - @MarkBaker [CodePlex #4126](https://phpexcel.codeplex.com/workitem/4126) +- PHPExcel_RichText and autosize - @MarkBaker [CodePlex #4180](https://phpexcel.codeplex.com/workitem/4180) +- Excel5Writer produces broken xls files after change mentioned in work item 4126 - @MarkBaker [CodePlex #4574](https://phpexcel.codeplex.com/workitem/4574) +- Small bug in PHPExcel_Reader_Excel2007 function _readStyle - @MarkBaker [CodePlex #4797](https://phpexcel.codeplex.com/workitem/4797) + + +## [1.5.0] - 2007-10-23 + +### Features + +- Refactor PHPExcel Drawing - @MarkBaker [CodePlex #3265](https://phpexcel.codeplex.com/workitem/3265) +- Update Shared/OLE.php to latest version from PEAR - @CS [CodePlex #3079](https://phpexcel.codeplex.com/workitem/3079) +- Excel2007 vs Excel2003 compatibility pack - @MarkBaker [CodePlex #3217](https://phpexcel.codeplex.com/workitem/3217) +- Cell protection (lock/unlock) - @MarkBaker [CodePlex #3234](https://phpexcel.codeplex.com/workitem/3234) +- Create clickable links (hyperlinks) - @MarkBaker [CodePlex #3543](https://phpexcel.codeplex.com/workitem/3543) +- Additional page setup parameters - @MarkBaker [CodePlex #3241](https://phpexcel.codeplex.com/workitem/3241) +- Make temporary file path configurable (Excel5) - @MarkBaker [CodePlex #3300](https://phpexcel.codeplex.com/workitem/3300) +- Small addition to applyFromArray for font - @MarkBaker [CodePlex #3306](https://phpexcel.codeplex.com/workitem/3306) + +### Bugfixes + +- Better feedback when save of file is not possible - @MarkBaker [CodePlex #3373](https://phpexcel.codeplex.com/workitem/3373) +- Text Rotation - @MarkBaker [CodePlex #3181](https://phpexcel.codeplex.com/workitem/3181) +- Small bug in Page Orientation - @MarkBaker [CodePlex #3237](https://phpexcel.codeplex.com/workitem/3237) +- insertNewColumnBeforeByColumn undefined - @MarkBaker [CodePlex #3812](https://phpexcel.codeplex.com/workitem/3812) +- Sheet references not working in formula (Excel5 Writer) - @MarkBaker [CodePlex #3893](https://phpexcel.codeplex.com/workitem/3893) + + +## [1.4.5] - 2007-08-23 + +### General + +- Class file endings - @MarkBaker [CodePlex #3003](https://phpexcel.codeplex.com/workitem/3003) +- Different calculation engine improvements - @MarkBaker [CodePlex #3081](https://phpexcel.codeplex.com/workitem/3081) +- Different improvements in PHPExcel_Reader_Excel2007 - @MarkBaker [CodePlex #3082](https://phpexcel.codeplex.com/workitem/3082) + +### Features + +- Set XML indentation in PHPExcel_Writer_Excel2007 - @MarkBaker [CodePlex #3146](https://phpexcel.codeplex.com/workitem/3146) +- Optionally store temporary Excel2007 writer data in file instead of memory - @MarkBaker [CodePlex #3159](https://phpexcel.codeplex.com/workitem/3159) +- Implement show/hide gridlines - @MarkBaker [CodePlex #3063](https://phpexcel.codeplex.com/workitem/3063) +- Implement option to read only data - @MarkBaker [CodePlex #3064](https://phpexcel.codeplex.com/workitem/3064) +- Optionally disable formula precalculation - @MarkBaker [CodePlex #3080](https://phpexcel.codeplex.com/workitem/3080) +- Explicitly set cell datatype - @MarkBaker [CodePlex #3154](https://phpexcel.codeplex.com/workitem/3154) + +### Bugfixes + +- Implement more Excel calculation functions - @MarkBaker [CodePlex #2346](https://phpexcel.codeplex.com/workitem/2346) + - Addition of MINA, MAXA, COUNTA, AVERAGEA, MEDIAN, MODE, DEVSQ, STDEV, STDEVA, STDEVP, STDEVPA, VAR, VARA, VARP and VARPA Excel Functions + - Fix to SUM, PRODUCT, QUOTIENT, MIN, MAX, COUNT and AVERAGE functions when cell contains a numeric value in a string datatype, bringing it in line with MS Excel behaviour- File_exists on ZIP fails on some installations - @MarkBaker [CodePlex #2881](https://phpexcel.codeplex.com/workitem/2881) +- Argument in textRotation should be -90..90 - @MarkBaker [CodePlex #2879](https://phpexcel.codeplex.com/workitem/2879) +- Excel2007 reader/writer not implementing OpenXML/SpreadsheetML styles 100% correct - @MarkBaker [CodePlex #2883](https://phpexcel.codeplex.com/workitem/2883) +- Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513) +- Print and print preview of generated XLSX causes Excel2007 to crash - @MarkBaker [CodePlex #2935](https://phpexcel.codeplex.com/workitem/2935) +- Error in Calculations - COUNT() function - @MarkBaker [CodePlex #2952](https://phpexcel.codeplex.com/workitem/2952) +- HTML and CSV writer not writing last row - @MarkBaker [CodePlex #3002](https://phpexcel.codeplex.com/workitem/3002) +- Memory leak in Excel5 writer - @MarkBaker [CodePlex #3017](https://phpexcel.codeplex.com/workitem/3017) +- Printing (PHPExcel_Writer_Excel5) - @MarkBaker [CodePlex #3044](https://phpexcel.codeplex.com/workitem/3044) +- Problems reading zip:// - @MarkBaker [CodePlex #3046](https://phpexcel.codeplex.com/workitem/3046) +- Error reading conditional formatting - @MarkBaker [CodePlex #3047](https://phpexcel.codeplex.com/workitem/3047) +- Bug in Excel5 writer (storePanes) - @MarkBaker [CodePlex #3067](https://phpexcel.codeplex.com/workitem/3067) +- Memory leak in PHPExcel_Style_Color - @MarkBaker [CodePlex #3077](https://phpexcel.codeplex.com/workitem/3077) + + +## [1.4.0] - 2007-07-23 + +### General + +- Coding convention / code cleanup - @MarkBaker [CodePlex #2687](https://phpexcel.codeplex.com/workitem/2687) +- Use set_include_path in tests - @MarkBaker [CodePlex #2717](https://phpexcel.codeplex.com/workitem/2717) + +### Features + +- Move PHPExcel_Writer_Excel5 OLE to PHPExcel_Shared_OLE - @MarkBaker [CodePlex #2812](https://phpexcel.codeplex.com/workitem/2812) +- Hide/Unhide Column or Row - @MarkBaker [CodePlex #2679](https://phpexcel.codeplex.com/workitem/2679) +- Implement multi-cell styling - @MarkBaker [CodePlex #2271](https://phpexcel.codeplex.com/workitem/2271) +- Implement CSV file format (reader/writer) - @MarkBaker [CodePlex #2720](https://phpexcel.codeplex.com/workitem/2720) + +### Bugfixes + +- Implement HTML file format - @MarkBaker [CodePlex #2845](https://phpexcel.codeplex.com/workitem/2845) +- Active sheet index not read/saved - @MarkBaker [CodePlex #2513](https://phpexcel.codeplex.com/workitem/2513) +- Freeze Panes with PHPExcel_Writer_Excel5 - @MarkBaker [CodePlex #2678](https://phpexcel.codeplex.com/workitem/2678) +- OLE.php - @MarkBaker [CodePlex #2680](https://phpexcel.codeplex.com/workitem/2680) +- Copy and pasting multiple drop-down list cells breaks reader - @MarkBaker [CodePlex #2736](https://phpexcel.codeplex.com/workitem/2736) +- Function setAutoFilterByColumnAndRow takes wrong arguments - @MarkBaker [CodePlex #2775](https://phpexcel.codeplex.com/workitem/2775) +- Simplexml_load_file fails on ZipArchive - @MarkBaker [CodePlex #2858](https://phpexcel.codeplex.com/workitem/2858) + + +## [1.3.5] - 2007-06-27 + +### Features + +- Documentation - @MarkBaker [CodePlex #15](https://phpexcel.codeplex.com/workitem/15) +- PHPExcel_Writer_Excel5 - @JV +- PHPExcel_Reader_Excel2007: Image shadows - @JV +- Data validation - @MarkBaker [CodePlex #2385](https://phpexcel.codeplex.com/workitem/2385) + +### Bugfixes + +- Implement richtext strings - @MarkBaker +- Empty relations when adding image to any sheet but the first one - @MarkBaker [CodePlex #2443](https://phpexcel.codeplex.com/workitem/2443) +- Excel2007 crashes on print preview - @MarkBaker [CodePlex #2536](https://phpexcel.codeplex.com/workitem/2536) + + +## [1.3.0] - 2007-06-05 + +### General + +- Create PEAR package - @MarkBaker [CodePlex #1942](https://phpexcel.codeplex.com/workitem/1942) + +### Features + +- Replace *->duplicate() by __clone() - @MarkBaker [CodePlex #2331](https://phpexcel.codeplex.com/workitem/2331) +- PHPExcel_Reader_Excel2007: Column auto-size, Protection, Merged cells, Wrap text, Page breaks, Auto filter, Images - @JV +- Implement "freezing" panes - @MarkBaker [CodePlex #245](https://phpexcel.codeplex.com/workitem/245) +- Cell addressing alternative - @MarkBaker [CodePlex #2273](https://phpexcel.codeplex.com/workitem/2273) +- Implement cell word-wrap attribute - @MarkBaker [CodePlex #2270](https://phpexcel.codeplex.com/workitem/2270) +- Auto-size column - @MarkBaker [CodePlex #2282](https://phpexcel.codeplex.com/workitem/2282) +- Implement formula calculation - @MarkBaker [CodePlex #241](https://phpexcel.codeplex.com/workitem/241) + +### Bugfixes + +- Insert/remove row/column - @MarkBaker [CodePlex #2375](https://phpexcel.codeplex.com/workitem/2375) +- PHPExcel_Worksheet::getCell() should not accept absolute coordinates - @MarkBaker [CodePlex #1931](https://phpexcel.codeplex.com/workitem/1931) +- Cell reference without row number - @MarkBaker [CodePlex #2272](https://phpexcel.codeplex.com/workitem/2272) +- Styles with same coordinate but different worksheet - @MarkBaker [CodePlex #2276](https://phpexcel.codeplex.com/workitem/2276) +- PHPExcel_Worksheet->getCellCollection() usort error - @MarkBaker [CodePlex #2290](https://phpexcel.codeplex.com/workitem/2290) +- Bug in PHPExcel_Cell::stringFromColumnIndex - @SS [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353) +- Reader: numFmts can be missing, use cellStyleXfs instead of cellXfs in styles - @JV [CodePlex #2353](https://phpexcel.codeplex.com/workitem/2353) + + +## [1.2.0] - 2007-04-26 + +### General + +- Stringtable attribute "count" not necessary, provides wrong info to Excel sometimes... - @MarkBaker +- Updated tests to address more document properties - @MarkBaker +- Some refactoring in PHPExcel_Writer_Excel2007_Workbook - @MarkBaker +- New package: PHPExcel_Shared - @MarkBaker +- Password hashing algorithm implemented in PHPExcel_Shared_PasswordHasher - @MarkBaker +- Moved pixel conversion functions to PHPExcel_Shared_Drawing - @MarkBaker +- Switch over to LGPL license - @MarkBaker [CodePlex #244](https://phpexcel.codeplex.com/workitem/244) + +### Features + +- Include PHPExcel version in file headers - @MarkBaker [CodePlex #5](https://phpexcel.codeplex.com/workitem/5) +- Autofilter - @MarkBaker [CodePlex #6](https://phpexcel.codeplex.com/workitem/6) +- Extra document property: keywords - @MarkBaker [CodePlex #7](https://phpexcel.codeplex.com/workitem/7) +- Extra document property: category - @MarkBaker [CodePlex #8](https://phpexcel.codeplex.com/workitem/8) +- Document security - @MarkBaker [CodePlex #9](https://phpexcel.codeplex.com/workitem/9) +- PHPExcel_Writer_Serialized and PHPExcel_Reader_Serialized - @MarkBaker [CodePlex #10](https://phpexcel.codeplex.com/workitem/10) +- Alternative syntax: Addressing a cell - @MarkBaker [CodePlex #11](https://phpexcel.codeplex.com/workitem/11) +- Merge cells - @MarkBaker [CodePlex #12](https://phpexcel.codeplex.com/workitem/12) + +### Bugfixes + +- Protect ranges of cells with a password - @MarkBaker [CodePlex #13](https://phpexcel.codeplex.com/workitem/13) +- (style/fill/patternFill/fgColor or bgColor can be empty) - @JV [CodePlex #14](https://phpexcel.codeplex.com/workitem/14) + + +## [1.1.1] - 2007-03-26 + +### General + +- Syntax error in "Classes/PHPExcel/Writer/Excel2007.php" on line 243 - @MarkBaker [CodePlex #1250](https://phpexcel.codeplex.com/workitem/1250) +- Reader should check if file exists and throws an exception when it doesn't - @MarkBaker [CodePlex #1282](https://phpexcel.codeplex.com/workitem/1282) + + +## [1.1.0] - 2007-03-22 + +### Bugfixes + +- Style information lost after passing trough Excel2007_Reader - @MarkBaker [CodePlex #836](https://phpexcel.codeplex.com/workitem/836) + +### General + +- Number of columns > AZ fails fixed in PHPExcel_Cell::columnIndexFromString - @MarkBaker [CodePlex #913](https://phpexcel.codeplex.com/workitem/913) + +### Features + +- Added a brief file with installation instructions - @MarkBaker +- Page breaks (horizontal and vertical) - @MarkBaker +- Image shadows - @MarkBaker + + +## [1.0.0] - 2007-02-22 + +### Bugfixes + +- PHPExcel->removeSheetByIndex now re-orders sheets after deletion, so no array indexes are lost - @JV +- PHPExcel_Writer_Excel2007_Worksheet::_writeCols() used direct assignment to $pSheet->getColumnDimension('A')->Width instead of $pSheet->getColumnDimension('A')->setWidth() - @JV +- DocumentProperties used $this->LastModifiedBy instead of $this->_lastModifiedBy. - @JV + +### General + +- Only first = should be removed when writing formula in PHPExcel_Writer_Excel2007_Worksheet. - @JV +- Consistency of method names to camelCase - @JV +- Updated tests to match consistency changes - @JV +- Detection of mime-types now with image_type_to_mime_type() - @JV +- Constants now hold string value used in Excel 2007 - @JV + +### Features + +- Fixed folder name case (WorkSheet -> Worksheet) - @MarkBaker +- PHPExcel classes (not the Writer classes) can be duplicated, using a duplicate() method. - @MarkBaker +- Cell styles can now be duplicated to a range of cells using PHPExcel_Worksheet->duplicateStyle() - @MarkBaker +- Conditional formatting - @MarkBaker +- Reader for Excel 2007 (not supporting full specification yet!) - @JV + + +## [1.0.0 RC] - 2007-01-31 + +- Project name has been changed to PHPExcel +- Project homepage is now http://www.codeplex.com/PHPExcel +- Started versioning at number: PHPExcel 1.0.0 RC + + +## 2007-01-22 + +- Fixed some performance issues on large-scale worksheets (mainly loops vs. indexed arrays) +- Performance on creating StringTable has been increased +- Performance on writing Excel2007 worksheet has been increased + + +## 2007-01-18 + +- Images can now be rotated +- Fixed bug: When drawings have full path specified, no mime type can be deducted +- Fixed bug: Only one drawing can be added to a worksheet + + +## 2007-01-12 + +- Refactoring of some classes to use ArrayObject instead of array() +- Cell style now has support for number format (i.e. #,##0) +- Implemented embedding images + + +## 2007-01-02 + +- Cell style now has support for fills, including gradient fills +- Cell style now has support for fonts +- Cell style now has support for border colors +- Cell style now has support for font colors +- Cell style now has support for alignment + + +## 2006-12-21 + +- Support for cell style borders +- Support for cell styles +- Refactoring of Excel2007 Writer into multiple classes in package SpreadSheet_Writer_Excel2007 +- Refactoring of all classes, changed public members to public properties using getter/setter +- Worksheet names are now unique. On duplicate worksheet names, a number is appended. +- Worksheet now has parent SpreadSheet object +- Worksheet now has support for page header and footer +- Worksheet now has support for page margins +- Worksheet now has support for page setup (only Paper size and Orientation) +- Worksheet properties now accessible by using getProperties() +- Worksheet now has support for row and column dimensions (height / width) +- Exceptions thrown have a more clear description + + +## Initial version + +- Create a Spreadsheet object +- Add one or more Worksheet objects +- Add cells to Worksheet objects +- Export Spreadsheet object to Excel 2007 OpenXML format +- Each cell supports the following data formats: string, number, formula, boolean. diff --git a/changelog.txt b/changelog.txt deleted file mode 100644 index e4171bde..00000000 --- a/changelog.txt +++ /dev/null @@ -1,1444 +0,0 @@ -************************************************************************************** -* PHPSpreadsheet -* -* Copyright (c) 2006 PHPOffice -* -* This library is free software; you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation; either -* version 2.1 of the License, or (at your option) any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library; if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -* -* @copyright Copyright (c) 2006 PHPOffice (https://github.com/PHPOffice/PhpSpreadsheet) -* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -* @version ##VERSION##, ##DATE## -************************************************************************************** - - -Planned for 1.9 -- Bugfix: (MBaker) - Fix to getCell() method when cell reference includes a worksheet reference -- Bugfix: (ncrypthic) Work Item GH-570 - Ignore inlineStr type if formula element exists -- Bugfix: (MBaker) Work Item GH-554 - Whitespace after toRichTextObject() -- General: (umpirsky) Work Item GH-548 - Optimize vlookup() sort -- Feature: (MBaker) - Initial implementation of SUMIFS() function -- Feature: (MBaker) - Additional codepages -- Feature: (Tomino2112) Work Item GH-808 - MemoryDrawing not working in HTML writer -- General: (rentalhost) Work Item GH-575 - Excel 2007 Reader freezes because of conditional formatting -- Bugfix: (vitalyrepin) Pull Request 869 - c:max and c:min elements shall NOT be inside c:orientation elements -- General: (sim642) Pull Request 489 - Implement actual timezone adjustment into PHPExcel_Shared_Date::PHPToExcel - - -2015-04-30 (v1.8.1): -- Bugfix: (goncons) Work Item GH-397 - Fix for Writing an Open Document cell with non-numeric formula -- Bugfix: (sarciszewski) Work Item GH-329 - Avoid potential divide by zero in basedrawing -- Bugfix: (ymaerschalck) Work Item GH-405 - XML External Entity (XXE) Processing, different behaviour between simplexml_load_string() and simplexml_load_file(). -- Bugfix: (MBaker) - Fix to ensure that current cell is maintained when executing formula calculations -- Bugfix: (MBaker) Work Item GH-350 - Keep/set the value on Reader _loadSheetsOnly as NULL, courtesy of Restless-ET -- Bugfix: (MBaker) Work Item CP18105 - Loading an Excel 2007 spreadsheet throws an "Autofilter must be set on a range of cells" exception -- Bugfix: (MBaker) Work Item GH-388 - Fix to autoloader registration for backward compatibility with PHP 5.2.0 not accepting the prepend flag -- Bugfix: (MBaker) Work Item GH-384 - DOM loadHTMLFile() failing with options flags when using PHP < 5.4.0 -- Bugfix: (MBaker) - Fix for percentage operator in formulae for BIFF Writer -- Bugfix: (MBaker) - Fix to getStyle() call for cell object -- Bugfix: (MBaker) - Discard Autofilters in Excel2007 Reader when filter range isn't a valid range -- Bugfix: (frozenstupidity) Work Item GH-423 - Fix invalid NA return in VLOOKUP -- Bugfix: (wiseloren) Work Item CP21454 - "No Impact" conditional formatting fix for NumberFormat -- Bugfix: (bobwitlox) Work Item GH-467 - Bug in Excel2003XML reader, parsing merged cells -- Bugfix: (MBaker) Work Item GH-302 - Fix for CEIL() and FLOOR() when number argument is zero -- Bugfix: (MBaker) - Remove cells cleanly when calling RemoveRow() or RemoveColumn() -- General: (MBaker) - Small performance improvement for autosize columns -- General: (frost-nzcr4) Work Item GH-379 - Change the getter/setter for zeroHeight to camel case -- General: (MBaker) Work Item GH-394 - DefaultValueBinder is too much aggressive when converting string to numeric -- General: (MBaker) - Default precalculate formulas to false for writers -- General: (MBaker) - Set default Cyclic Reference behaviour to 1 to eliminate exception when using a single cyclic iteration in formulae -- General: (MBaker) Work Item GH-396 - Some Excel writer libraries erroneously use Codepage 21010 for UTF-16LE -- Feature: (WiktrzGE) Work Item GH-404 - Methods to manage most of the existing options for Chart Axis, Major Grid-lines and Minor Grid-lines -- Feature: (frost-nzcr4) Work Item GH-403 - ODS read/write comments in the cell -- Feature: (CQD) Work Item GH-389 - Additional Mac CJK codepage definitions -- Feature: (bolovincev) Work Item GH-269 - Update Worksheet.php getStyleByColumnAndRow() to allow a range of cells rather than just a single cell -- Feature: (MBaker) - New methods added for testing cell status within merge groups -- Feature: (cifren/MBaker) Work Item GH-205 - Handling merge cells in HTML Reader -- Feature: (MBaker) - Helper to convert basic HTML markup to a Rich Text object -- Feature: (MBaker) - Improved Iterators - New Column Iterator - Support for row and column ranges - Improved handling for next/prev -- Security: (MBaker) - XML filescan in XML-based Readers to prevent XML Entity Expansion (XEE) - (see http://projects.webappsec.org/w/page/13247002/XML%20Entity%20Expansion for an explanation of XEE injection) attacks - Reference CVE-2015-3542 - Identification of problem courtesy of Dawid Golunski (Pentest Ltd.) - - -2014-03-02 (v1.8.0): -- Bugfix: (MBaker) Work item CP19830 - Undefined variable: fileHandle in CSV Reader -- Bugfix: (MBaker) Work item CP19968 - Out of memory in style/supervisor.php -- Bugfix: (MBaker) - Style error with merged cells in PDF Writer -- Bugfix: (MBaker) - Problem with cloning worksheets -- Bugfix: (tavoarcila) Work Item GH-259 - Bug fix reading Open Office files -- Bugfix: (MBaker) Work item CP20397 - Serious bug in absolute cell reference used in shared formula - Would also have affected insert/delete column/row -- Bugfix: (RomanSyroeshko) Work Item GH-267 - CHOOSE() returns "#VALUE!" if the 1st entry is chosen -- Bugfix: (Gemorroj) Work Item GH-268 - When duplicating styles, styles shifted by one column to the right - Fix also applied to duplicating conditional styles -- Bugfix: (IndrekHaav) Work Item GH-212 - Fix for formulae that reference a sheet whose name begins with a digit: - these were erroneously identified as numeric values, causing the parser to throw an undefined variable error. -- Bugfix: (IndrekHaav) Work Item CP16208 - Fixed undefined variable error due to $styleArray being used before it's initialised -- Bugfix: (PowerKiKi) Work Item GH-273 - ISTEXT() return wrong result if referencing an empty but formatted cell -- Bugfix: (PowerKiKi) Work Item GH-270/GH-31 - Binary comparison of strings are case insensitive -- Bugfix: (MBaker) Work Item GH-275 - Insert New Row/Column Before is not correctly updating formula references -- Bugfix: (MBaker) Work Item GH-257 - Passing an array of cells to _generateRow() in the HTML/PDF Writer causes caching problems with last cell in the range -- Bugfix: (MBaker) Work Item GH-193 - Fix to empty worksheet garbage collection when using cell caching -- Bugfix: (Jazzo) Work Item GH-248 - Excel2007 does not correctly mark rows as hidden -- Bugfix: (Roy Shahbazian) Work Item GH-299 - Fixed typo in Chart/Layout set/getYMode() -- Bugfix: (EliuFlorez) Work item GH-279 - Fatal error: Call to a member function cellExists() line: 3327 in calculation.php if referenced worksheet doesn't exist -- Bugfix: (MBaker) Work Item GH-290 - AdvancedValueBinder "Division by zero"-error -- Bugfix: (MBaker) Work Item CP20604 - Adding Sheet to Workbook Bug -- Bugfix: (MBaker) Work item CP20703 - Calculation engine incorrectly evaluates empty cells as #VALUE -- Bugfix: (MBaker) Work item CP20760 - Formula references to cell on another sheet in ODS files -- Bugfix: (MBaker) Work item GH321,GH158,CP17824 - LibreOffice created XLSX files results in an empty file. -- Feature: (amerov) - Implementation of the Excel HLOOKUP() function -- Feature: (MBaker) - Added "Quote Prefix" to style settings (Excel2007 Reader and Writer only) -- Feature: (MBaker) - Added Horizontal FILL alignment for Excel5 and Excel2007 Readers/Writers, and Horizontal DISTRIBUTED alignment for Excel2007 Reader/Writer -- Feature: (trvrnrth) Work Item GH-261 - Add support for reading protected (RC4 encrypted) .xls files -- Feature: (LWol) Work Item GH-252 - Adding support for macros, Ribbon in Excel 2007 -- General: (cdhutch) Work item CP20055 - Remove array_shift in ReferenceHelper::insertNewBefore improves column or row delete speed -- General: (MBaker) - Improve stock chart handling and rendering, with help from Swashata Ghosh -- General: (MBaker) - Fix to calculation properties for Excel2007 so that the opening application will only recalculate on load if it's actually required -- General: (MBaker) - Modified Excel2007 Writer to default preCalculateFormulas to false - Note that autosize columns will still recalculate affected formulae internally -- General: (dresenhista) Work Item GH-242 - Functionality to getHighestRow() for a specified column, and getHighestColumn() for a specified row -- General: (adamriyadi) Work Item GH-247 - Modify PHPExcel_Reader_Excel2007 to use zipClass from PHPExcel_Settings::getZipClass() - This allows the use of PCLZip when reading for people that don't have access to ZipArchive -- General: (infojunkie) Work Item GH-276 - Convert properties to string in OOCalc reader -- Security: (maartenba) Work Item GH-322 - Disable libxml external entity loading by default. - This is to prevent XML External Entity Processing (XXE) injection attacks (see http://websec.io/2012/08/27/Preventing-XEE-in-PHP.html for an explanation of XXE injection). - Reference CVE-2014-2054 - - -2013-06-02 (v1.7.9): -- Feature: (MBaker) Include charts option for HTML Writer -- Feature: (MBaker) Added composer file -- Feature: (MBaker) Added getStyle() method to Cell object -- Bugfix: (Asker) Work item 18777 - Error in PHPEXCEL/Calculation.php script on line 2976 (stack pop check) -- Bugfix: (MBaker) Work item 18794 - CSV files without a file extension being identified as HTML -- Bugfix: (AndreKR) Work item GH-66 - Wrong check for maximum number of rows in Excel5 Writer -- Bugfix: (MBaker) Work item GH-67 - Cache directory for DiscISAM cache storage cannot be set -- Bugfix: (MBaker) Work item 17976 - Fix to Excel2007 Reader for hyperlinks with an anchor fragment (following a #), otherwise they were treated as sheet references -- Bugfix: (MBaker) Work item 18963 - getSheetNames() fails on numeric (floating point style) names with trailing zeroes -- Bugfix: (MBaker) Work item GH-130 - Single cell print area -- General: (kea) Work item GH-69 - Improved AdvancedValueBinder for currency -- General: (MBaker) Work items 17936 and 17840 - Fix for environments where there is no access to /tmp but to upload_tmp_dir - Provided an option to set the sys_get_temp_dir() call to use the upload_tmp_dir; though by default the standard temp directory will still be used -- General: (amironov ) Work item GH-84 - Search style by identity in PHPExcel_Worksheet::duplicateStyle() -- General: (karak) Work item GH-85 - Fill SheetView IO in Excel5 -- General: (cfhay) Work item 18958 - Memory and Speed improvements in PHPExcel_Reader_Excel5 -- General: (MBaker) Work item GH-78 - Modify listWorksheetNames() and listWorksheetInfo to use XMLReader with streamed XML rather than SimpleXML -- General: (dbonsch) Restructuring of PHPExcel Exceptions -- General: (MBaker) Work items 16926 and 15145 - Refactor Calculation Engine from singleton to a Multiton - Ensures that calculation cache is maintained independently for different workbooks -- General: (MBaker) Modify cell's getCalculatedValue() method to return the content of RichText objects rather than the RichText object itself -- Bugfix: (techhead) Work item GH-70 - Fixed formula/formatting bug when removing rows -- Bugfix: (alexgann) Work item GH-63 - Fix to cellExists for non-existent namedRanges -- Bugfix: (MBaker) Work item 18844 - cache_in_memory_gzip "eats" last worksheet line, cache_in_memory doesn't -- Feature: (Progi1984) Work item GH-22 - Sheet View in Excel5 Writer -- Bugfix: (amironov) Work item GH-82 - PHPExcel_Worksheet::getCellCollection() may not return last cached cell -- Bugfix: (teso) Work item 18551 - Rich Text containing UTF-8 characters creating unreadable content with Excel5 Writer -- Bugfix: (MBaker) Work item GH-104 - echo statements in HTML.php -- Feature: (Progi1984) Work item GH-8/CP11704 : Conditional formatting in Excel 5 Writer -- Bugfix: (MBaker) Work item GH-113 - canRead() Error for GoogleDocs ODS files: in ODS files from Google Docs there is no mimetype file -- Bugfix: (MBaker) Work item GH-80 - "Sheet index is out of bounds." Exception -- Bugfix: (ccorliss) Work item GH-105 - Fixed number format fatal error -- Bugfix: (MBaker) - Add DROP TABLE in destructor for SQLite and SQLite3 cache controllers -- Bugfix: (alexgann) Work item GH-154 - Fix merged-cell borders on HTML/PDF output -- Bugfix: (Shanto) Work item GH-161 - Fix: Hyperlinks break when removing rows -- Bugfix: (neclimdul) Work item GH-166 - Fix Extra Table Row From Images and Charts - - -2012-10-12 (v1.7.8): -- Special: (kkamkou) Phar builder script to add phar file as a distribution option -- Feature: (MBaker) Refactor PDF Writer to allow use with a choice of PDF Rendering library - rather than restricting to tcPDF - Current options are tcPDF, mPDF, DomPDF - tcPDF Library has now been removed from the deployment bundle -- Feature: (MBaker) Initial version of HTML Reader -- Feature: (Progi1984) & (blazzy) Work items 9605 - Implement support for AutoFilter in PHPExcel_Writer_Excel5 -- Feature: (MBaker) Modified ERF and ERFC Engineering functions to accept Excel 2010's modified acceptance of negative arguments -- Feature: (k1LoW) Support SheetView `view` attribute (Excel2007) -- Feature: (MBaker) Excel compatibility option added for writing CSV files - While Excel 2010 can read CSV files with a simple UTF-8 BOM, Excel2007 and earlier require UTF-16LE encoded tab-separated files. - The new setExcelCompatibility(TRUE) option for the CSV Writer will generate files with this formatting for easy import into Excel2007 and below. -- Feature: (MBaker) Language implementations for Turkish (tr) -- Feature: (MBaker) Added fraction tests to advanced value binder -- Feature: (MBaker) Allow call to font setUnderline() for underline format to specify a simple boolean for UNDERLINE_NONE or UNDERLINE_SINGLE -- General: (alexgann) Add Currency detection to the Advanced Value Binder -- General: (MBaker) Work item 18404 - setCellValueExplicitByColumnAndRow() do not return PHPExcel_Worksheet -- General: (MBaker) Work item 18324 - Reader factory doesn't read anymore XLTX and XLT files -- General: (MBaker) Magic __toString() method added to Cell object to return raw data value as a string -- General: (alexgann) Add cell indent to html rendering -- General: (Raghav1981) ZeroHeight for rows in sheet format -- Bugfix: (cyberconte) Patch 12318 - OOCalc cells containing <text:span> inside the <text:p> tag -- Bugfix: (schir1964) Fix to listWorksheetInfo() method for OOCalc Reader -- Bugfix: (MBaker) Support for "e" (epoch) date format mask - Rendered as a 4-digit CE year in non-Excel outputs -- Bugfix: (MBaker) Work items 15799 and 18278 - Background color cell is always black when editing cell -- Bugfix: (MBaker) Work items 15905 and 18183 - Allow "no impact" to formats on Conditional Formatting -- Bugfix: (wackonline) OOCalc Reader fix for NULL cells -- Bugfix: (seltzlab) Fix to excel2007 Chart Writer when a $plotSeriesValues is empty -- Bugfix: (MBaker) Various fixes to Chart handling -- Bugfix: (MBaker) Work item 18370 - Error loading xlsx file with column breaks -- Bugfix: (MBaker) OOCalc Reader now handles percentage and currency data types -- Bugfix: (MBaker) Work Item 18415 - mb_stripos empty delimiter -- Bugfix: (takaakik) Work Item 15455 - getNestingLevel() Error on Excel5 Read -- Bugfix: (MBaker) Fix to Excel5 Reader when cell annotations are defined before their referenced text objects -- Bugfix: (MBaker) OOCalc Reader modified to process number-rows-repeated -- Bugfix: (MBaker) Work item 18377 - Chart Title compatibility on Excel 2007 -- Bugfix: (MBaker) Work item 18146 - Chart Refresh returning cell reference rather than values -- Bugfix: (MBaker) Work item 18145 - Autoshape being identified in twoCellAnchor when includeCharts is TRUE triggering load error -- Bugfix: (MBaker) Work item 18325 - v-type texts for series labels now recognised and parsed correctly -- Bugfix: (wolf5x) Work item 18492 - load file failed if the file has no extensionType -- Bugfix: (dverspui) Pattern fill colours in Excel2007 Style Writer -- Bugfix: (MBaker) Excel2007 Writer order of font style elements to conform with Excel2003 using compatibility pack -- Bugfix: (MBaker) Work item 18425 - Problems with $_activeSheetIndex when decreased below 0. -- Bugfix: (MBaker) Work item 18597 - PHPExcel_CachedObjectStorage_SQLite3::cacheMethodIsAvailable() uses class_exists - autoloader throws error -- Bugfix: (MBaker) Work item 18598 - Cannot access private property PHPExcel_CachedObjectStorageFactory::$_cacheStorageMethod -- Bugfix: (MBaker) Work item 18397 - Data titles for charts - PHPExcel_Chart_Layout now has methods for getting/setting switches for displaying/hiding chart data labels -- Bugfix: (MBaker) Discard single cell merge ranges when reading (stupid that Excel allows them in the first place) -- Bugfix: (MBaker) Discard hidden autoFilter named ranges - - -2012-05-19 (v1.7.7): -- Bugfix: (Progi1984) Work item 8916 - Support for Rich-Text in PHPExcel_Writer_Excel5 -- Bugfix: (cyberconte) Work item 17471 - OOCalc cells contain same data bug? -- Feature: (schir1964) listWorksheetInfo() method added to Readers... courtesy of Christopher Mullins -- Feature: (MBaker) Options for cell caching using Igbinary and SQLite/SQlite3. -- Feature: (MBaker) Additional row iterator options: allow a start row to be defined in the constructor; seek(), and prev() methods added. -- Feature: (Progi1984) Work item 9759 - Implement document properties in Excel5 writer -- Feature: (MBaker) Work item 16 - Implement chart functionality (EXPERIMENTAL) - Initial definition of chart objects. - Reading Chart definitions through the Excel2007 Reader - Facility to render charts to images using the 3rd-party jpgraph library - Writing Charts using the Excel2007 Writer -- General: (MBaker) Fix to build to ensure that Examples are included with the documentation -- General: (MBaker) Reduce cell caching overhead using dirty flag to ensure that cells are only rewritten to the cache if they have actually been changed -- General: (MBaker) Improved memory usage in CSV Writer -- General: (MBaker) Improved speed and memory usage in Excel5 Writer -- General: (MBaker) Experimental - - Added getHighestDataColumn(), getHighestDataRow(), getHighestRowAndColumn() and calculateWorksheetDataDimension() methods for the worksheet that return the highest row and column that have cell records -- General: (MBaker) Change iterators to implement Iterator rather than extend CachingIterator, as a fix for PHP 5.4. changes in SPL -- Bugfix: (MBaker) Work item 15459 - Invalid cell coordinate in Autofilter for Excel2007 Writer -- Bugfix: (MBaker) Work item 15518 - PCLZip library issue -- Bugfix: (MBaker) Work item 15537 - Excel2007 Reader canRead function bug -- Bugfix: (MBaker) Support for Excel functions whose return can be used as either a value or as a cell reference depending on its context within a formula -- Bugfix: (gilles06) Work item 15707 - ini_set() call in Calculation class destructor -- Bugfix: (MBaker) Work item 15786 - RangeToArray strange array keys -- Bugfix: (MBaker) Work item 15762 - INDIRECT() function doesn't work with named ranges -- Bugfix: (MBaker) Locale-specific fix to text functions when passing a boolean argument instead of a string -- Bugfix: (MBaker) Work item 16246 - reader/CSV fails on this file - auto_detect_line_endings now set in CSV reader -- Bugfix: (MBaker) Work item 16212 - $arguments improperly used in CachedObjectStorage/PHPTemp.php -- Bugfix: (MBaker) Work item 16643 - Bug In Cache System (cell reference when throwing caching errors) -- Bugfix: (MBaker) Work item 16895 - PHP Invalid index notice on writing excel file when active sheet has been deleted -- Bugfix: (MBaker) Work item 16956 - External links in Excel2010 files cause Fatal error -- Bugfix: (MBaker) Work item 16960 - Previous calculation engine error conditions trigger cyclic reference errors -- Bugfix: (mkopinsky) Work item 16266 - PHPExcel_Style::applyFromArray() returns null rather than style object in advanced mode -- Bugfix: (fauvel) Work item 16958 - Cell::getFormattedValue returns RichText object instead of string -- Bugfix: (MBaker) Work item 17166 - Indexed colors do not refer to Excel's indexed colors? -- Bugfix: (MBaker) Work item 17199 - Indexed colors should be consistent with Excel and start from 1 (current index starts at 0) -- Bugfix: (MBaker) Work item 17262 - Named Range definition in .xls when sheet reeference is quote wrapped -- Bugfix: (MBaker) Work item 17403 - duplicateStyle() method doesn't duplicate conditional formats - Added an equivalent duplicateConditionalStyle() method for duplicating conditional styles -- Bugfix: (bnr) Work item 17501 - =sumproduct(A,B) <> =sumproduct(B,A) in xlsx -- Bugfix: (Progi1984) Work item 8916 - Support for Rich-Text in PHPExcel_Writer_Excel5 -- General: (MBaker) Work item 15405 - Two easy to fix Issues concerning PHPExcel_Token_Stack (l10n/UC) -- General: (MBaker) Work item 15461 - Locale file paths not fit for windows -- General: (MBaker) Work item 16643 - Add file directory as a cache option for cache_to_discISAM -- General: (MBaker) Work item 16923 - Datatype.php & constant TYPE_NULL -- General: (MBaker) Ensure use of system temp directory for all temporary work files, unless explicitly specified -- General: (char101) Work item 16359 - [Patch] faster stringFromColumnIndex() -- General: (whit1206) Work item 16028 - Fix for projects that still use old autoloaders -- General: (atz) Work item 17024 - Unknown codepage: 10007 - Additional Mac codepages - - -2011-02-27 (v1.7.6): -- Feature: (MBaker) Provide option to use PCLZip as an alternative to ZipArchive. - This allows the writing of Excel2007 files, even without ZipArchive enabled (it does require zlib), or when php_zip is one of the buggy PHP 5.2.6 or 5.2.8 versions - It can be enabled using PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); - Note that it is not yet implemented as an alternative to ZipArchive for those Readers that are extracting from zips -- Feature: (MBaker) Work item 14979 - Added listWorksheetNames() method to Readers that support multiple worksheets in a workbook, allowing a user to extract a list of all the worksheet names from a file without parsing/loading the whole file. -- Feature: (MBaker) Speed boost and memory reduction in the Worksheet toArray() method. -- Feature: (MBaker) Added new rangeToArray() and namedRangeToArray() methods to the PHPExcel_Worksheet object. - Functionally, these are identical to the toArray() method, except that they take an additional first parameter of a Range (e.g. 'B2:C3') or a Named Range name. - Modified the toArray() method so that it actually uses rangeToArray(). -- Feature: (MBaker) Added support for cell comments in the OOCalc, Gnumeric and Excel2003XML Readers, and in the Excel5 Reader -- Feature: (MBaker) Improved toFormattedString() handling for Currency and Accounting formats to render currency symbols -- Feature: (MBaker) Work Item 2346 - Implement more Excel calculation functions - Implemented the DAVERAGE(), DCOUNT(), DCOUNTA(), DGET(), DMAX(), DMIN(), DPRODUCT(), DSTDEV(), DSTDEVP(), DSUM(), DVAR() and DVARP() Database functions -- Bugfix: (MBaker) Work item 14888 - Simple =IF() formula disappears -- Bugfix: (MBaker) Work item 14898 - PHP Warning: preg_match(): Compilation failed: PCRE does not support \\L, \\l, \\N, \\P, \\p, \\U, \\u, or \\X -- Bugfix: (MBaker) Work item 14901 - VLOOKUP choking on parameters in PHPExcel.1.7.5/PHPExcel_Writer_Excel2007 -- Bugfix: (MBaker) Work item 14973 - PHPExcel_Cell::isInRange() incorrect results - offset by one column -- Bugfix: (MBaker) Treat CodePage of 0 as CP1251 (for .xls files written by applications that don't set the CodePage correctly, such as Apple Numbers) -- Bugfix: (MB) Work item 11583 - Need method for removing autoFilter -- Bugfix: (MBaker) Work item 15029 - coordinateFromString throws exception for rows greater than 99,999 -- Bugfix: (MBaker) Work item 14999 - PHPExcel Excel2007 Reader colour problems with solidfill -- Bugfix: (MBaker) Work item 13215 - Formatting get lost and edit a template XLSX file -- Bugfix: (MBaker) Work item 14029 - Excel 2007 Reader /writer lost fontcolor -- Bugfix: (MBaker) Work item 13374 - file that makes cells go black -- Bugfix: (MBaker) Minor patchfix for Excel2003XML Reader when XML is defined with a charset attribute -- Bugfix: (MBaker) Work item 15089 - PHPExcel_Worksheet->toArray() index problem -- Bugfix: (MBaker) Work item 15094 - Merge cells 'un-merge' when using an existing spreadsheet -- Bugfix: (MBaker) Work item 15129 - Worksheet fromArray() only working with 2-D arrays -- Bugfix: (xkeshav) Work item 15172 - rangeToarray function modified for non-existent cells -- Bugfix: (MBaker) Work item 14980 - Images not getting copyied with the ->clone function -- Bugfix: (MBaker) Work item 11576 - AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't -- Bugfix: (MBaker) Fix Excel5 Writer so that it only writes column dimensions for columns that are actually used rather than the full range (A to IV) -- Bugfix: (MBaker) Work item 15198 - FreezePane causing damaged or modified error - The freezePaneByColumnAndRow() method row argument should default to 1 rather than 0. - Default row argument for all __ByColumnAndRow() methods should be 1 -- Bugfix: (MBaker) Work item 15121 - Column reference rather than cell reference in Print Area definition - Fix Excel2007 Writer to handle print areas that are defined as row or column ranges rather than just as cell ranges -- Bugfix: (MBaker) Reduced false positives from isDateTimeFormatCode() method by suppressing testing within quoted strings -- Bugfix: (MBaker) Work item 15312 - Caching and tmp partition exhaustion -- Bugfix: (MBaker) Work item 15308 - Writing to Variable No Longer Works. $_tmp_dir Missing in PHPExcel\PHPExcel\Shared\OLE\PPS\Root.php -- Bugfix: (MBaker) Work item 15379 - Named ranges with dot don't get parsed properly -- Bugfix: (MBaker) Work item 15096 - insertNewRowBefore fails to consistently update references -- Bugfix: (MBaker) "i" is not a valid character for Excel date format masks (in isDateTimeFormatCode() method) -- Bugfix: (MKunert) Work item 15421 - PHPExcel_ReferenceHelper::insertNewBefore() is missing an 'Update worksheet: comments' section -- Bugfix: (MBaker) Work item 15409 - Full column/row references in named ranges not supported by updateCellReference() -- General: (MBaker) Improved performance (speed), for building the Shared Strings table in the Excel2007 Writer. -- General: (MBaker) Improved performance (speed), for PHP to Excel date conversions -- General: (MBaker) Enhanced SheetViews element structures in the Excel2007 Writer for frozen panes. -- General: (MBaker) Removed Serialized Reader/Writer as these no longer work. - - -2010-12-10 (v1.7.5): -- Feature: (MBaker) Work item 8769 - Implement Gnumeric File Format - Initial work on Gnumeric Reader (Worksheet Data, Document Properties and basic Formatting) -- Feature: (MBaker) (incorporating part of Workitem 9759) - Support for Extended Workbook Properties in Excel2007, Excel5 and OOCalc Readers; support for User-defined Workbook Properties in Excel2007 and OOCalc Readers -- Feature: (MBaker) Support for Extended and User-defined Workbook Properties in Excel2007 Writer -- Feature: (MBaker) Provided a setGenerateSheetNavigationBlock(false); option to suppress generation of the sheet navigation block when writing multiple worksheets to HTML -- Feature: (MBaker) Advanced Value Binder now recognises TRUE/FALSE strings (locale-specific) and converts to boolean -- Feature: (MBaker) Work item 14301 - PHPExcel_Worksheet->toArray() is returning truncated values -- Feature: (MBaker) Configure PDF Writer margins based on Excel Worksheet Margin Settings value -- Feature: (MBaker) Added Contiguous flag for the CSV Reader, when working with Read Filters -- Feature: (MBaker) Added getFormattedValue() method for cell object -- Feature: (MBaker) Added strictNullComparison argument to the worksheet fromArray() method -- Feature: (MBaker) Fix to toFormattedString() method in PHPExcel_Style_NumberFormat to handle fractions with a # code for the integer part -- Bugfix: (MB) Work item 14143 - NA() doesn't propagate in matrix calc - quick fix in JAMA/Matrix.php -- Bugfix: (Progi1984) Work item 7895 - Excel5 : Formula : String constant containing double quotation mark -- Bugfix: (Progi1984) Work item 7895 - Excel5 : Formula : Percent -- Bugfix: (Progi1984) Work item 7895 - Excel5 : Formula : Error constant -- Bugfix: (Progi1984) Work item 7895 - Excel5 : Formula : Concatenation operator -- Bugfix: (MBaker) Work item 14146 - Worksheet clone broken for CachedObjectStorage_Memory -- Bugfix: (MBaker) Work item 12998 - PHPExcel_Reader_Excel2007 fails when gradient fill without type is present in a file -- Bugfix: (MBaker) Work item 14176 - @ format for numeric strings in XLSX to CSV conversion -- Bugfix: (MBaker) Work item 14223 - Advanced Value Binder Not Working? -- Bugfix: (MBaker) Work item 14226 - unassigned object variable in PHPExcel->removeCellXfByIndex -- Bugfix: (MBaker) Work item 14236 - problem with getting cell values from another worksheet... (if cell doesn't exist) -- Bugfix: (MBaker) Work items 14260 & 14233 - Setting cell values to one char strings & Trouble reading one character string (thanks gorfou) -- Bugfix: (MBaker) Work item 14256 - Worksheet title exception when duplicate worksheet is being renamed but exceeds the 31 character limit -- Bugfix: (MBaker) Work item 14086 - Named range with sheet name that contains the $ throws exception when getting the cell -- Bugfix: (MBaker) Added autoloader to DefaultValueBinder and AdvancedValueBinder -- Bugfix: (MBaker) Modified PHPExcel_Shared_Date::isDateTimeFormatCode() to return false if format code begins with "_" or with "0 " to prevent false positives - These leading characters are most commonly associated with number, currency or accounting (or occasionally fraction) formats -- Bugfix: (MBaker) Work item 14374 - BUG : Excel5 and setReadFilter ? -- Bugfix: (MBaker) Work item 14425 - Wrong exception message while deleting column -- Bugfix: (MBaker) Work item 14679 - Formula evaluation fails with Japanese sheet refs -- Bugfix: (MBaker) Work item 13559 - PHPExcel_Writer_PDF does not handle cell borders correctly -- Bugfix: (MBaker) Work item 14831 - Style : applyFromArray() for 'allborders' not working -- Bugfix: (MBaker) Work item 14837 - Using $this when not in object context in Excel5 Reader -- General: (MBaker) Applied patch 6609 - Removes a unnecessary loop through each cell when applying conditional formatting to a range. -- General: (MBaker) Applied patch 7169 - Removed spurious PHP end tags (?>) -- General: (MBaker) Improved performance (speed) and reduced memory overheads, particularly for the Writers, but across the whole library. - - -2010-08-26 (v1.7.4): -- Bugfix: (Progi1984) Work item 7895 - Excel5 : Formula : Power -- Bugfix: (Progi1984) Work item 7895 - Excel5 : Formula : Unary plus -- Bugfix: (Progi1984) Excel5 : Just write the Escher stream if necessary in Worksheet -- Bugfix: (MBaker) Work item 13433 - Syntax errors in memcache.php 1.7.3c -- Bugfix: (MBaker) Work item 13450 - Standard Deviation functions returning DIV/0 Error when Standard Deviation is zero -- Feature: (MBaker) Support for print area with several ranges in the Excel2007 reader, and improved features for editing print area with several ranges -- Feature: (MBaker) Work item 13769 - Improved Cell Exception Reporting -- Feature: (MBaker) Support for row or column ranges in the calculation engine, e.g. =SUM(C:C) or =SUM(1:2) - Also support in the calculation engine for absolute row or column ranges e.g. =SUM($C:$E) or =SUM($3:5) -- Bugfix: (ET) Work item 13455 - Picture problem with Excel 2003 -- Bugfix: (MBaker) Work item 13484 - Wrong variable used in addExternalSheet in PHPExcel.php -- Bugfix: (MBaker) Work item 13515 - "Invalid cell coordinate" error when formula access data from an other sheet -- Bugfix: (MBaker) (related to Work item 13515) Calculation engine confusing cell range worksheet when referencing cells in a different worksheet to the formula -- Bugfix: (MBaker) Work item 13752 - Wrong var naming in Worksheet->garbageCollect() -- Bugfix: (MBaker) Work item 13764 - PHPExcel_Style_*::__clone() methods cause cloning loops? -- Bugfix: (MBaker) Work item 11488 - Recent builds causing problems loading xlsx files? (ZipArchive issue?) -- Bugfix: (MBaker) Work item 13856 - cache_to_apc causes fatal error when processing large data sets -- Bugfix: (MBaker) Work item 13880 - OOCalc reader misses first line if it's a 'table-header-row' -- Bugfix: (MBaker) Work item 14011 - using cache with copy or clone bug? - Fixed $worksheet->copy() or clone $worksheet when using cache_in_memory, cache_in_memory_gzip, cache_in_memory_serialized, cache_to_discISAM, cache_to_phpTemp, cache_to_apc and cache_to_memcache; - Fixed but untested when using cache_to_wincache. -- Bugfix: (MBaker) Fixed problems with reading Excel2007 Properties -- General: (MB) Applied patch 6324 - PHP Strict Standards: Non-static method PHPExcel_Shared_String::utf16_decode() should not be called statically -- General: (MBaker) Applied patch 6360 - Array functions were ignored when loading an existing file containing them, and as a result, they would lose their 'cse' status. -- General: (MBaker) Minor memory tweaks to Excel2007 Writer -- General: (MBaker) Modified ReferenceHelper updateFormulaReferences() method to handle updates to row and column cell ranges (including absolute references e.g. =SUM(A:$E) or =SUM($5:5), and range/cell references that reference a worksheet by name), and to provide both performance and memory improvements. -- General: (MBaker) Modified Excel2007 Reader so that ReferenceHelper class is instantiated only once rather than for every shared formula in a workbook. -- General: (MBaker) Correct handling for additional (synonym) formula tokens in Excel5 Reader -- General: (MBaker) Additional reading of some Excel2007 Extended Properties (Company, Manager) - - -2010-06-01 (v1.7.3c): -- Bugfix: (MB) Work item 13012 - Fatal error: Class 'ZipArchive' not found... ...Reader/Excel2007.php on line 217 -- Bugfix: (MBaker) Work item 13398 - PHPExcel_Writer_Excel2007 error after 1.7.3b - - -2010-05-31 (v1.7.3b): -- Bugfix: (MBaker) Work item 12903 - Infinite loop when reading -- Bugfix: (MB) Work item 13381 - Wrong method chaining on PHPExcel_Worksheet class - - -2010-05-17 (v1.7.3): -- General: (ET) Applied patch 4990 (modified) -- General: (MB) Applied patch 5568 (modified) -- General: (MB) Applied patch 5943 -- General: (MB) Work item 13042 - Upgrade build script to use Phing -- General: (ET) Work item 11586 - Replacing var with public/private -- General: (MBaker) Applied Anthony's Sterling's Class Autoloader to reduce memory overhead by "Lazy Loading" of classes -- General: (MBaker) Modification to functions that accept a date parameter to support string values containing ordinals as per Excel (English language only) -- General: (MBaker) Modify PHPExcel_Style_NumberFormat::toFormattedString() to handle dates that fall outside of PHP's 32-bit date range -- General: (MBaker) Applied patch 5207 -- General: (ET) Work item 11970 - PHPExcel developer documentation: Set page margins -- Feature: (ET) Work item 11038 - Special characters and accents in SYLK reader -- Feature: (MBaker) Work Item 2346 - Implement more Excel calculation functions - - Implemented the COUPDAYS(), COUPDAYBS(), COUPDAYSNC(), COUPNCD(), COUPPCD() and PRICE() Financial functions - - Implemented the N() and TYPE() Information functions - - Implemented the HYPERLINK() Lookup and Reference function -- Feature: (ET) Work item 11526 - Horizontal page break support in PHPExcel_Writer_PDF -- Feature: (ET) Work item 11529 - Introduce method setActiveSheetIndexByName() -- Feature: (ET) Work item 11550 - AdvancedValueBinder.php: Automatically wrap text when there is new line in string (ALT+"Enter") -- Feature: (ET) Work item 10300 - Data validation support in PHPExcel_Reader_Excel5 and PHPExcel_Writer_Excel5 -- Feature: (MB) Work item 11616 - Improve autosize calculation -- Feature: (MBaker) Methods to translate locale-specific function names in formulae - - Language implementations for Czech (cs), Danish (da), German (de), English (uk), Spanish (es), Finnish (fi), French (fr), Hungarian (hu), Italian (it), Dutch (nl), Norwegian (no), Polish (pl), Portuguese (pt), Brazilian Portuguese (pt_br), Russian (ru) and Swedish (sv) -- Feature: (ET) Work item 9759 - Implement document properties in Excel5 reader/writer - - Fixed so far for PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 11849 - Show/hide row and column headers in worksheet -- Feature: (ET) Work item 11919 - Can't set font on writing PDF (by key) -- Feature: (ET) Work item 12096 - Thousands scale (1000^n) support in PHPExcel_Style_NumberFormat::toFormattedString -- Feature: (ET) Work item 6911 - Implement repeating rows in PDF and HTML writer -- Feature: (ET) Work item 12289 - Sheet tabs in PHPExcel_Writer_HTML -- Feature: (MB) Work item 13041 - Add Wincache CachedObjectProvider -- Feature: (MBaker) Configure PDF Writer paper size based on Excel Page Settings value, and provided methods to override paper size and page orientation with the writer - - Note PHPExcel defaults to Letter size, while the previous PDF writer enforced A4 size, so PDF writer will now default to Letter -- Feature: (MBaker) Initial implementation of cell caching: allowing larger workbooks to be managed, but at a cost in speed -- Feature: (MBaker) Added an identify() method to the IO Factory that identifies the reader which will be used to load a particular file without actually loading it. -- Bugfix: (MBaker) Work item 10979 - Warning messages with INDEX function having 2 arguments -- Bugfix: (ET) Work item 11473 - setValue('=') should result in string instead of formula -- Bugfix: (MBaker) Work item 11471 - method _raiseFormulaError should no be private -- Bugfix: (ET) Work item 11485 - Fatal error: Call to undefined function mb_substr() in ...Classes\PHPExcel\Reader\Excel5.php on line 2903 -- Bugfix: (ET) Work item 11487 - getBold(), getItallic(), getStrikeThrough() not always working with PHPExcel_Reader_Excel2007 -- Bugfix: (ET) Work item 11492 - AdvancedValueBinder.php not working correctly for $cell->setValue('hh:mm:ss') -- Bugfix: (MBaker) Fixed leap year handling for the YEARFRAC() Date/Time function when basis ia 1 (Actual/actual) -- Bugfix: (MBaker) Work item 11490 - Warning messages - - Calculation Engine code modified to enforce strict standards for pass by reference -- Bugfix: (ET) Work item 11483 - PHPExcel_Cell_AdvancedValueBinder doesnt work for dates in far future -- Bugfix: (ET) Work item 11528 - MSODRAWING bug with long CONTINUE record in PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 11571 - PHPExcel_Reader_Excel2007 reads print titles as named range when there is more than one sheet -- Bugfix: (ET) Work item 11561 - missing @return in phpdocblock in reader classes -- Bugfix: (ET) Work item 11576 - AdvancedValueBinder.php: String sometimes becomes a date when it shouldn't -- Bugfix: (ET) Work item 11588 - Small numbers escape treatment in PHPExcel_Style_NumberFormat::toFormattedString() -- Bugfix: (ET) Work item 11590 - Blank styled cells are not blank in output by HTML writer due to &nbsp; -- Bugfix: (MBaker) Work item 11587 - Calculation engine bug: Existing, blank cell + number gives #NUM -- Bugfix: (ET) Work item 11608 - AutoSize only measures length of first line in cell with multiple lines (ALT+Enter) -- Bugfix: (ET) Work item 11608 - Fatal error running Tests/12serializedfileformat.php (PHPExcel 1.7.2) -- Bugfix: (MBaker) Fixed various errors in the WORKDAY() and NETWORKDAYS() Date/Time functions (particularly related to holidays) -- Bugfix: (ET) Work item 11660 - Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/SheetView.php:115 -- Bugfix: (ET) Work item 11551 - "Unrecognized token 39 in formula" with PHPExcel_Reader_Excel5 (occuring with add-in functions) -- Bugfix: (ET) Work item 11668 - Excel2007 reader not reading PHPExcel_Style_Conditional::CONDITION_EXPRESSION -- Bugfix: (MBaker) Fix to the BESSELI(), BESSELJ(), BESSELK(), BESSELY() and COMPLEX() Engineering functions to use correct default values for parameters -- Bugfix: (MBaker) Work item 11525 - DATEVALUE function not working for pure time values + allow DATEVALUE() function to handle partial dates (e.g. "1-Jun" or "12/2010") -- Bugfix: (MBaker) Fix for empty quoted strings in formulae -- Bugfix: (MBaker) Trap for division by zero in Bessel functions -- Bugfix: (MBaker) Fix to OOCalc Reader to convert semi-colon (;) argument separator in formulae to a comma (,) -- Bugfix: (ET) Work item 11693 - PHPExcel_Writer_Excel5_Parser cannot parse formula like =SUM(C$5:C5) -- Bugfix: (MBaker) Fix to OOCalc Reader to handle dates that fall outside 32-bit PHP's date range -- Bugfix: (ET) Work item 11692 - File->sys_get_temp_dir() can fail in safe mode -- Bugfix: (ET) Work item 11727 - Sheet references in Excel5 writer do not work when referenced sheet title contains non-Latin symbols -- Bugfix: (ET) Work item 11743 - Bug in HTML writer can result in missing rows in output -- Bugfix: (ET) Work item 11674 - setShowGridLines(true) not working with PHPExcel_Writer_PDF -- Bugfix: (ET) Work item 11836 - PHPExcel_Worksheet_RowIterator initial position incorrect -- Bugfix: (ET) Work item 11835 - PHPExcel_Worksheet_HeaderFooterDrawing Strict Exception thrown (by jshaw86) -- Bugfix: (ET) Work item 11850 - Parts of worksheet lost when there are embedded charts (Excel5 reader) -- Bugfix: (MBaker) VLOOKUP() function error when lookup value is passed as a cell reference rather than an absolute value -- Bugfix: (ET) Work item 12041 - First segment of Rich-Text not read correctly by PHPExcel_Reader_Excel2007 -- Bugfix: (MBaker) Work item 12048 - Fatal Error with getCell('name') when name matches the pattern for a cell reference -- Bugfix: (ET) Work item 12039 - excel5 writer appears to be swapping image locations -- Bugfix: (ET) Work item 11954 - Undefined index: host in ZipStreamWrapper.php, line 94 and line 101 -- Bugfix: (ET) Work item 11672 - BIFF8 File Format problem (too short COLINFO record) -- Bugfix: (ET) Work item 12121 - Column width sometimes changed after read/write with Excel2007 reader/writer -- Bugfix: (ET) Work item 11964 - Worksheet.php throws a fatal error when styling is turned off via setReadDataOnly on the reader -- Bugfix: (MBaker) Work item 11851 - Checking for Circular References in Formulae - - Calculation Engine code now traps for cyclic references, raising an error or throwing an exception, or allows 1 or more iterations through cyclic references, based on a configuration setting -- Bugfix: (ET) Work item 12244 - PNG transparency using Excel2007 writer -- Bugfix: (ET) Work item 12221 - Custom readfilter error when cell formulas reference excluded cells (Excel5 reader) -- Bugfix: (ET) Work item 12288 - Protection problem in XLS -- Bugfix: (ET) Work item 12300 - getColumnDimension()->setAutoSize() incorrect on cells with Number Formatting -- Bugfix: (ET) Work item 12378 - Notices reading Excel file with Add-in funcitons (PHPExcel_Reader_Excel5) -- Bugfix: (ET) Work item 12380 - Excel5 reader not reading formulas with deleted sheet references -- Bugfix: (ET) Work item 12404 - Named range (defined name) scope problems for in PHPExcel -- Bugfix: (ET) Work item 12423 - PHP Parse error: syntax error, unexpected T_PUBLIC in PHPExcel/Calculation.php on line 3482 -- Bugfix: (ET) Work item 12505 - Named ranges don't appear in name box using Excel5 writer -- Bugfix: (ET) Work item 12509 - Many merged cells + autoSize column -> slows down the writer -- Bugfix: (ET) Work item 12539 - Incorrect fallback order comment in Shared/Strings.php ConvertEncoding() -- Bugfix: (ET) Work item 12538 - IBM AIX iconv() will not work, should revert to mbstring etc. instead -- Bugfix: (ET) Work item 12568 - Excel5 writer and mbstring functions overload -- Bugfix: (MBaker) Work item 12672 - OFFSET needs to flattenSingleValue the $rows and $columns args -- Bugfix: (MBaker) Work item 12546 - Formula with DMAX(): Notice: Undefined offset: 2 in ...\PHPExcel\Calculation.php on line 2365 - - Note that the Database functions have not yet been implemented -- Bugfix: (MBaker) Work item 12839 - Call to a member function getParent() on a non-object in Classes\\PHPExcel\\Calculation.php Title is required -- Bugfix: (MBaker) Work item 12935 - Cyclic Reference in Formula -- Bugfix: (MBaker) Work item 13025 - Memory error...data validation? - - -2010/01/11 (v1.7.2): -- General: (ET) Applied patch 4362 -- General: (ET) Applied patch 4363 (modified) -- General: (MBaker) Work item 10874 - 1.7.1 Extremely Slow - Refactored PHPExcel_Calculation_Functions::flattenArray() method and set calculation cache timer default to 2.5 seconds -- General: (MBaker) Allow formulae to contain line breaks -- General: (ET) Work item 10910 - split() function deprecated in PHP 5.3.0 -- General: (ET) sys_get_temp_dir() requires PHP 5.2.1, not PHP 5.2 [provide fallback function for PHP 5.2.0] -- General: (MBaker) Applied patch 4640 - Implementation of the ISPMT() Financial function by Matt Groves -- General: (MBaker) Work item 11052 - Put the example of formula with more arguments in documentation -- General: (MBaker) Improved accuracy for the GAMMAINV() Statistical Function -- Feature: (ET) Work item 10409 - XFEXT record support to fix colors change from Excel5 reader, and copy/paste color change with Excel5 writer - - Excel5 reader reads RGB color information in XFEXT records for borders, font color and fill color -- Feature: (MBaker) Work Item 2346 - Implement more Excel calculation functions - - Implemented the FVSCHEDULE(), XNPV(), IRR(), MIRR(), XIRR() and RATE() Financial functions - - Implemented the SUMPRODUCT() Mathematical function - - Implemented the ZTEST() Statistical Function -- Feature: (ET) Work item 10919 - Multiple print areas in one sheet -- Feature: (ET) Work item 10930 - Store calculated values in output by PHPExcel_Writer_Excel5 -- Feature: (ET) Work item 10939 - Sheet protection options in Excel5 reader/writer -- Feature: (MBaker) Modification of the COUNT(), AVERAGE(), AVERAGEA(), DEVSQ, AVEDEV(), STDEV(), STDEVA(), STDEVP(), STDEVPA(), VARA() and VARPA() SKEW() and KURT() functions to correctly handle boolean values depending on whether they're passed in as values, values within a matrix or values within a range of cells. -- Feature: (ET) Work item 9932 - Cell range selection -- Feature: (MB) Work item 10266 - Root-relative path handling -- Feature: (ET) Work item 11315 - Named Ranges not working with PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 11206 - Excel2007 Reader fails to load Apache POI generated Excel -- Bugfix: (MB) Work item 11154 - Number format is broken when system's thousands separator is empty -- Bugfix: (MB) Work item 11401 - ReferenceHelper::updateNamedFormulas throws errors if oldName is empty -- Bugfix: (MB) Work item 11296 - parse_url() fails to parse path to an image in xlsx -- Bugfix: (ET) Work item 10876 - Workaround for iconv_substr() bug in PHP 5.2.0 -- Bugfix: (ET) Work item 10877 - 1 pixel error for image width and height with PHPExcel_Writer_Excel5 -- Bugfix: (MBaker) Fix to GEOMEAN() Statistical function -- Bugfix: (ET) Work item 10884 - setValue('-') and setValue('.') sets numeric 0 instead of 1-character string -- Bugfix: (ET) Work item 10885 - Row height sometimes much too low after read with PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10888 - Diagonal border. Miscellaneous missing support. - - Constant PHPExcel_Style_Borders::DIAGONAL_BOTH added to support double-diagonal (cross) - - PHPExcel_Reader_Excel2007 not always reading diagonal borders (only recognizes 'true' and not '1') - - PHPExcel_Reader_Excel5 support for diagonal borders - - PHPExcel_Writer_Excel5 support for diagonal borders -- Bugfix: (ET) Work item 10894 - Session bug: Fatal error: Call to a member function bindValue() on a non-object in ...\Classes\PHPExcel\Cell.php on line 217 -- Bugfix: (ET) Work item 10896 - Colors messed up saving twice with same instance of PHPExcel_Writer_Excel5 (regression since 1.7.0) -- Bugfix: (ET) Work item 10917 - Method PHPExcel_Worksheet::setDefaultStyle is not working -- Bugfix: (ET) Work item 10897 - PHPExcel_Reader_CSV::canRead() sometimes says false when it shouldn't -- Bugfix: (ET) Work item 10922 - Changes in workbook not picked up between two saves with PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 10913 - Decimal and thousands separators missing in HTML and PDF output -- Bugfix: (ET) Work item 10936 - Notices with PHPExcel_Reader_Excel5 and named array constants -- Bugfix: (MBaker) Work item 10938 - Calculation engine limitation on 32-bit platform with integers > 2147483647 -- Bugfix: (ET) Work item 10959 - Shared(?) formulae containing absolute cell references not read correctly using Excel5 Reader -- Bugfix: (MBaker) Work item 10962 - Warning messages with intersection operator involving single cell -- Bugfix: (ET) Work item 10980 - Infinite loop in Excel5 reader caused by zero-length string in SST -- Bugfix: (ET) Work item 10983 - Remove unnecessary cell sorting to improve speed by approx. 18% in HTML and PDF writers -- Bugfix: (MBaker) Work item 10977 - Cannot read A1 cell content - OO_Reader -- Bugfix: (ET) Work item 11000 - Transliteration failed, invalid encoding - - -2009/11/02 (v1.7.1): -- General: (ET) Work item 10687 - ereg() function deprecated in PHP 5.3.0 -- General: (MB) Work item 10739 - Writer Interface Inconsequence - setTempDir and setUseDiskCaching -- General: (ET) Upgrade to TCPDF 4.8.009 -- Feature: (ET) Work item 7333 - Support for row and column styles (feature request) - - Basic implementation for Excel2007/Excel5 reader/writer -- Feature: (ET) Work item 10459 - Hyperlink to local file in Excel5 reader/writer -- Feature: (MB) Work item 10472 - Color Tab (Color Sheet's name) -- Feature: (ET) Work item 10488 - Border style "double" support in PHPExcel_Writer_HTML -- Feature: (ET) Work item 10492 - Multi-section number format support in HTML/PDF/CSV writers -- Feature: (MBaker) - Some additional performance tweaks in the calculation engine -- Feature: (MBaker) - Fix result of DB() and DDB() Financial functions to 2dp when in Gnumeric Compatibility mode -- Feature: (MBaker) - Added AMORDEGRC(), AMORLINC() and COUPNUM() Financial function (no validation of parameters yet) -- Feature: (MBaker) - Improved accuracy of TBILLEQ(), TBILLPRICE() and TBILLYIELD() Financial functions when in Excel or Gnumeric mode -- Feature: (MBaker) - Added INDIRECT() Lookup/Reference function (only supports full addresses at the moment) -- Feature: (MB) Work item 10498 - PHPExcel_Reader_CSV::canRead() improvements -- Feature: (ET) Work item 10500 - Input encoding option for PHPExcel_Reader_CSV -- Feature: (ET) Work item 10493 - Colored number format support, e.g. [Red], in HTML/PDF output -- Feature: (ET) Work item 10559 - Color Tab (Color Sheet's name) [Excel5 reader/writer support] -- Feature: (MBaker) Initial version of SYLK (slk) and Excel 2003 XML Readers (Cell data and basic cell formatting) -- Feature: (MBaker) Initial version of Open Office Calc (ods) Reader (Cell data only) -- Feature: (MBaker) Initial use of "pass by reference" in the calculation engine for ROW() and COLUMN() Lookup/Reference functions -- Feature: (MBaker) Work item 2346 - COLUMNS() and ROWS() Lookup/Reference functions, and SUBSTITUTE() Text function -- Feature: (ET) Work item 10502 - AdvancedValueBinder(): Re-enable zero-padded string-to-number conversion, e.g '0004' -> 4 -- Feature: (ET) Work item 10600 - Make PHP type match Excel datatype -- Feature: (MB) Work item 10630 - Change first page number on header -- Feature: (MB) Applied patch 3941 -- Feature: (MB,ET) Work item 10745 - Hidden sheets -- Feature: (ET) Work item 10761 - mbstring fallback when iconv is broken -- Feature: (MBaker) Added support for matrix/value comparisons (e.g. ={1,2;3,4}>=3 or 2<>{1,2;3,4}) - Note, can't yet handle comparison of two matrices -- Feature: (MBaker) Improved handling for validation and error trapping in a number of functions -- Feature: (MBaker) Improved support for fraction number formatting -- Feature: (ET) Work item 10455 - Support Reading CSV with Byte Order Mark (BOM) -- Feature: (ET) Work item 10860 - addExternalSheet() at specified index -- Bugfix: (MBaker) Work item 10684 - Named range can no longer be passed to worksheet->getCell() -- Bugfix: (ET) Work item 10455 - RichText HTML entities no longer working in PHPExcel 1.7.0 -- Bugfix: (ET) Work item 7610 - Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet [+ support for simultaneous scale/fitToPage] -- Bugfix: (MB) Work item 10469 - Performance issue identified by profiling -- Bugfix: (ET) Work item 10473 - setSelectedCell is wrong -- Bugfix: (ET) Work item 10481 - Images get squeezed/stretched with (Mac) Verdana 10 Excel files using Excel5 reader/writer -- Bugfix: (MBaker) Work item 10482 - Error in argument count for DATEDIF() function -- Bugfix: (MBaker) Work item 10452 - updateFormulaReferences is buggy -- Bugfix: (MB) Work item 10485 - CellIterator returns null Cell if onlyExistingCells is set and key() is in use -- Bugfix: (MBaker) Work item 10453 - Wrong RegEx for parsing cell references in formulas -- Bugfix: (MB) Work item 10486 - Optimisation subverted to devastating effect if IterateOnlyExistingCells is clear -- Bugfix: (ET) Work item 10494 - Fatal error: Uncaught exception 'Exception' with message 'Unrecognized token 6C in formula'... with PHPExcel_Reader_Excel5 -- Bugfix: (MBaker) Work item 10490 - Fractions stored as text are not treated as numbers by PHPExcel's calculation engine -- Bugfix: (ET) Work item 10503 - AutoFit (autosize) row height not working in PHPExcel_Writer_Excel5 -- Bugfix: (MBaker) Fixed problem with null values breaking the calculation stack -- Bugfix: (ET) Work item 10524 - Date number formats sometimes fail with PHPExcel_Style_NumberFormat::toFormattedString, e.g. [$-40047]mmmm d yyyy -- Bugfix: (MBaker) Fixed minor problem with DATEDIFF YM calculation -- Bugfix: (MB) Applied patch 3695 -- Bugfix: (ET) Work item 10536 - setAutosize() and Date cells not working properly -- Bugfix: (ET) Work item 10556 - Time value hour offset in output by HTML/PDF/CSV writers (system timezone problem) -- Bugfix: (ET) Work item 10558 - Control characters 0x14-0x1F are not treated by PHPExcel -- Bugfix: (ET) Work item 10560 - PHPExcel_Writer_Excel5 not working when open_basedir restriction is in effect -- Bugfix: (MBaker) Work item 10563 - IF formula calculation problem in PHPExcel 1.7.0 (string comparisons) -- Bugfix: (MBaker) Improved CODE() Text function result for UTF-8 characters -- Bugfix: (ET) Work item 10568 - Empty rows are collapsed with HTML/PDF writer -- Bugfix: (ET) Work item 10569 - Gaps between rows in output by PHPExcel_Writer_PDF (Upgrading to TCPDF 4.7.003) -- Bugfix: (ET) Work item 10575 - Problem reading formulas (Excel5 reader problem with "fake" shared formulas) -- Bugfix: (MBaker) Work item 10588 - Error type in formula: "_raiseFormulaError message is Formula Error: An unexpected error occured" -- Bugfix: (ET) Work item 10599 - Miscellaneous column width problems in Excel5/Excel2007 writer -- Bugfix: (ET) Work item 10615 - Reader/Excel5 'Unrecognized token 2D in formula' in latest version -- Bugfix: (ET) Work item 10623 - on php 5.3 PHPExcel 1.7 Excel 5 reader fails in _getNextToken, token = 2C, throws exception -- Bugfix: (ET) Work item 10617 - Fatal error when altering styles after workbook has been saved -- Bugfix: (ET) Work item 10661 - Images vertically stretched or squeezed when default font size is changed (PHPExcel_Writer_Excel5) -- Bugfix: (ET) Work item 10676 - Styles not read in "manipulated" Excel2007 workbook -- Bugfix: (ET) Work item 10059 - Windows 7 says corrupt file by PHPExcel_Writer_Excel5 when opening in Excel -- Bugfix: (MBaker) Work item 10708 - Calculations sometimes not working with cell references to other sheets -- Bugfix: (ET) Work item 10706 - Problem with merged cells after insertNewRowBefore() -- Bugfix: (MBaker) Applied patch 4023 -- Bugfix: (MBaker) Fix to SUMIF() and COUNTIF() Statistical functions for when condition is a match against a string value -- Bugfix: (ET) Work item 10721 - PHPExcel_Cell::coordinateFromString should throw exception for bad string parameter -- Bugfix: (ET) Work item 10723 - EucrosiaUPC (Thai font) not working with PHPExcel_Writer_Excel5 -- Bugfix: (MBaker) Improved the return of calculated results when the result value is an array -- Bugfix: (MBaker) Allow calculation engine to support Functions prefixed with @ within formulae -- Bugfix: (MBaker) Work item 10632 - Intersection operator (space operator) fatal error with calculation engine -- Bugfix: (ET) Work item 10742 - Chinese, Japanese, Korean characters show as squares in PDF -- Bugfix: (ET) Work item 10756 - sheet title allows invalid characters -- Bugfix: (ET) Work item 10757 - Sheet!$A$1 as function argument in formula causes infinite loop in Excel5 writer -- Bugfix: (MBaker) Work item 10740 - Cell range involving name not working with calculation engine - Modified calculation parser to handle range operator (:), but doesn't currently handle worksheet references with spaces or other non-alphameric characters, or trap erroneous references -- Bugfix: (MBaker) Work item 10798 - DATE function problem with calculation engine (says too few arguments given) -- Bugfix: (MBaker) Work item 10799 - Blank cell can cause wrong calculated value -- Bugfix: (MBaker) Modified ROW() and COLUMN() Lookup/Reference Functions to return an array when passed a cell range, plus some additional work on INDEX() -- Bugfix: (ET) Work item 10817 - Images not showing in Excel 97 using PHPExcel_Writer_Excel5 (patch by Jordi Gutiérrez Hermoso) -- Bugfix: (ET) Work item 10785 - When figures are contained in the excel sheet, Reader was stopped -- Bugfix: (MBaker) Work item 10818 - Formulas changed after insertNewRowBefore() -- Bugfix: (ET) Work item 10825 - Cell range row offset problem with shared formulas using PHPExcel_Reader_Excel5 -- Bugfix: (MBaker) Work item 10832 - Warning: Call-time pass-by-reference has been deprecated -- Bugfix: (ET) Work item 10849 - Image should "Move but don't size with cells" instead of "Move and size with cells" with PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 10856 - Opening a Excel5 generated XLS in Excel 2007 results in header/footer entry not showing on input -- Bugfix: (ET) Work item 10859 - addExternalSheet() not returning worksheet -- Bugfix: (MBaker) Work item 10629 - Invalid results in formulas with named ranges - - -2009/08/10 (v1.7.0): -- General: (ET) Work item 9893 - Expand documentation: Number formats -- General: (ET) Work item 9941 - Class 'PHPExcel_Cell_AdvancedValueBinder' not found -- General: (MB) Work item 9960 - Change return type of date functions to PHPExcel_Calculation_Functions::RETURNDATE_EXCEL -- Feature: (MBaker) - New RPN and stack-based calculation engine for improved performance of formula calculation - - Faster (anything between 2 and 12 times faster than the old parser, depending on the complexity and nature of the formula) - - Significantly more memory efficient when formulae reference cells across worksheets - - Correct behaviour when referencing Named Ranges that exist on several worksheets - - Support for Excel ^ (Exponential) and % (Percentage) operators - - Support for matrices within basic arithmetic formulae (e.g. ={1,2,3;4,5,6;7,8,9}/2) - - Better trapping/handling of NaN and infinity results (return #NUM! error) - - Improved handling of empty parameters for Excel functions - - Optional logging of calculation steps -- Feature: (MBaker) - New calculation engine can be accessed independently of workbooks (for use as a standalone calculator) -- Feature: (MBaker) Work Item 2346 - Implement more Excel calculation functions - - Initial implementation of the COUNTIF() and SUMIF() Statistical functions - - Added ACCRINT() Financial function -- Feature: (MBaker) - Modifications to number format handling for dddd and ddd masks in dates, use of thousand separators even when locale only implements it for money, and basic fraction masks (0 ?/? and ?/?) -- Feature: (ET) Work item 9794 - Support arbitrary fixed number of decimals in PHPExcel_Style_NumberFormat::toFormattedString() -- Feature: (ET) Work item 6857 - Improving performance and memory on data dumps - - Various style optimizations (merging from branch wi6857-memory) - - Moving hyperlink and dataValidation properties from cell to worksheet for lower PHP memory usage -- Feature: (MB) Work item 9869 - Provide fluent interfaces where possible -- Feature: (ET) Work item 9899 - Make easy way to apply a border to a rectangular selection -- Feature: (ET) Work item 9906 - Support for system window colors in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 9911 - Horizontal center across selection -- Feature: (ET) Work item 9919 - Merged cells record, write to full record size in PHPExcel_Writer_Excel5 -- Feature: (MB) Work item 9895 - Add page break between sheets in exported PDF -- Feature: (ET) Work item 9902 - Sanitization of UTF-8 input for cell values -- Feature: (ET) Work item 9930 - Read cached calculated value with PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 9896 - Miscellaneous CSS improvements for PHPExcel_Writer_HTML -- Feature: (ET) Work item 9947 - getProperties: setCompany feature request -- Feature: (MB) Patch 2981 - Insert worksheet at a specified index -- Feature: (MB) Patch 3018 - Change worksheet index -- Feature: (MB) Patch 3039 - Readfilter for CSV reader -- Feature: (ET) Work item 10172 - Check value of mbstring.func_overload when saving with PHPExcel_Writer_Excel5 -- Feature: (ET) Work item 10251 - Eliminate dependency of an include path pointing to class directory -- Feature: (ET) Work item 10292 - Method for getting the correct reader for a certain file (contribution) -- Feature: (ET) Work item 10287 - Choosing specific row in fromArray method -- Feature: (ET) Work item 10319 - Shared formula support in PHPExcel_Reader_Excel5 -- Feature: (MB,ET) Work item 10345 - Right-to-left column direction in worksheet -- Bugfix: (ET) Work item 9824 - PHPExcel_Reader_Excel5 not reading PHPExcel_Style_NumberFormat::FORMAT_NUMBER ('0') -- Bugfix: (ET) Work item 9858 - Fractional row height in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 9846 - Fractional (decimal) numbers not inserted correctly when locale is other than English -- Bugfix: (ET) Work item 9863 - Fractional calculated value in locale other than English results in corrupt output using PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 9830 - Locale aware decimal and thousands separator in exported formats HTML, CSV, PDF -- Bugfix: (MB) Work item 9819 - Cannot Add Image with Space on its Name -- Bugfix: (ET) Work item 9884 - Black line at top of every page in output by PHPExcel_Writer_PDF -- Bugfix: (ET) Work item 9885 - Border styles and border colors not showing in HTML output (regression since 1.6.4) -- Bugfix: (ET) Work item 9888 - Hidden screen gridlines setting in worksheet not read by PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 9913 - Some valid sheet names causes corrupt output using PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 9934 - More than 32,767 characters in a cell gives corrupt Excel file -- Bugfix: (ET) Work item 9937 - Images not getting copyied with the ->copy() function -- Bugfix: (ET) Work item 9940 - Bad calculation of column width setAutoSize(true) function -- Bugfix: (ET) Work item 9968 - Dates are sometimes offset by 1 day in output by HTML and PDF writers depending on system timezone setting -- Bugfix: (ET) Work item 10003 - Wingdings symbol fonts not working with PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 10010 - White space string prefix stripped by PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 10023 - The name of the Workbook stream MUST be "Workbook", not "Book" -- Bugfix: (ET) Work item 10030 - Avoid message "Microsoft Excel recalculates formulas..." when closing xls file from Excel -- Bugfix: (ET) Work item 10031 - Non-unique newline representation causes problems with LEN formula -- Bugfix: (ET) Work item 10033 - Newline in cell not showing with PHPExcel_Writer_HTML and PHPExcel_Writer_PDF -- Bugfix: (ET) Work item 10046 - Rich-Text strings get prefixed by &nbsp; when output by HTML writer -- Bugfix: (ET) Work item 10052 - Leading spaces do not appear in output by HTML/PDF writers -- Bugfix: (MB) Work item 10061 - Empty Apache POI-generated file can not be read -- Bugfix: (ET) Work item 10068 - Column width not scaling correctly with font size in HTML and PDF writers -- Bugfix: (ET) Work item 10069 - Inaccurate row heights with HTML writer -- Bugfix: (MB) Patch 2992 - Reference helper -- Bugfix: (MBaker) - Excel 5 Named ranges should not be local to the worksheet, but accessible from all worksheets -- Bugfix: (ET) Work item 10088 - Row heights are ignored by PHPExcel_Writer_PDF -- Bugfix: (MB) Patch 3003 - Write raw XML -- Bugfix: (ET) Work item 10098 - removeRow(), removeColumn() not always clearing cell values -- Bugfix: (ET) Work item 10142 - Problem reading certain hyperlink records with PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10143 - Hyperlink cell range read failure with PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 10149 - 'Column string index can not be empty.' -- Bugfix: (ET) Work item 10204 - getHighestColumn() sometimes says there are 256 columns with PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10220 - extractSheetTitle fails when sheet title contains exclamation mark (!) -- Bugfix: (ET) Work item 10221 - setTitle() sometimes erroneously appends integer to sheet name -- Bugfix: (ET) Work item 10229 - Mac BIFF5 Excel file read failure (missing support for Mac OS Roman character set) -- Bugfix: (ET) Work item 10230 - BIFF5 header and footer incorrectly read by PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10259 - iconv notices when reading hyperlinks with PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10252 - Excel5 reader OLE read failure with small Mac BIFF5 Excel files -- Bugfix: (ET) Work item 10272 - Problem in reading formula : IF( IF ) with PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10274 - Error reading formulas referencing external sheets with PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10291 - Image horizontally stretched when default font size is increased (PHPExcel_Writer_Excel5) -- Bugfix: (ET) Work item 10333 - Undefined offset in Reader\Excel5.php on line 3572 -- Bugfix: (MB) Work item 10340 - PDF output different then XLS (copied data) -- Bugfix: (ET) Work item 10352 - Internal hyperlinks with UTF-8 sheet names not working in PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 10361 - String shared formula result read error with PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 10363 - Uncaught exception 'Exception' with message 'Valid scale is between 10 and 400.' in Classes/PHPExcel/Worksheet/PageSetup.php:338 -- Bugfix: (ET) Work item 10355 - Using setLoadSheetsOnly fails if you do not use setReadDataOnly(true) and sheet is not the first sheet -- Bugfix: (MB) Work item 10362 - getCalculatedValue() sometimes incorrect with IF formula and 0-values -- Bugfix: (MBaker) Work Item 10198 - Excel Reader 2007 problem with "shared" formulae when "master" is an error -- Bugfix: (MBaker) Work Item 10106 - Named Range Bug, using the same range name on different worksheets -- Bugfix: (MBaker) Work Item 10004 - Java code in JAMA classes -- Bugfix: (MBaker) Work Item 9659 - getCalculatedValue() not working with some formulas involving error types -- Bugfix: (MBaker) Work Item 9447 - evaluation of both return values in an IF() statement returning an error if either result was an error, irrespective of the IF evaluation -- Bugfix: (MBaker) Work Item 6203 - Power in formulas: new calculation engine no longer treats ^ as a bitwise XOR operator -- Bugfix: (MBaker) - Bugfixes and improvements to many of the Excel functions in PHPExcel - - Added optional "places" parameter in the BIN2HEX(), BIN2OCT, DEC2BIN(), DEC2OCT(), DEC2HEX(), HEX2BIN(), HEX2OCT(), OCT2BIN() and OCT2HEX() Engineering Functions - - Trap for unbalanced matrix sizes in MDETERM() and MINVERSE() Mathematic and Trigonometric functions - - Fix for default characters parameter value for LEFT() and RIGHT() Text functions - - Fix for GCD() and LCB() Mathematical functions when the parameters include a zero (0) value - - Fix for BIN2OCT() Engineering Function for 2s complement values (which were returning hex values) - - Fix for BESSELK() and BESSELY() Engineering functions - - Fix for IMDIV() Engineering Function when result imaginary component is positive (wasn't setting the sign) - - Fix for ERF() Engineering Function when called with an upper limit value for the integration - - Fix to DATE() Date/Time Function for year value of 0 - - Set ISPMT() function as category FINANCIAL - - Fix for DOLLARDE() and DOLLARFR() Financial functions - - Fix to EFFECT() Financial function (treating $nominal_rate value as a variable name rather than a value) - - Fix to CRITBINOM() Statistical function (CurrentValue and EssentiallyZero treated as constants rather than variables) - Note that an Error in the function logic can still lead to a permanent loop - - Fix to MOD() Mathematical function to work with floating point results - - Fix for QUOTIENT() Mathematical function - - Fix to HOUR(), MINUTE() and SECOND() Date/Time functions to return an error when passing in a floating point value of 1.0 or greater, or less than 0 - - LOG() Function now correctly returns base-10 log when called with only one parameter, rather than the natural log as the default base - - Modified text functions to handle multibyte character set (UTF-8). - - -2009/04/22 (v1.6.7): -- General: (MB) Work item 9416 - Deprecate misspelled setStriketrough() and getStriketrough() methods -- General: (MB) Work item 9526 - Performance improvement when saving file -- Feature: (MB) Work item 9598 - Check that sheet title has maximum 31 characters -- Feature: (MB, ET) Work item 9631 - True support for Excel built-in number format codes -- Feature: (ET) Work item 9683 - Ability to read defect BIFF5 Excel file without CODEPAGE record -- Feature: (MB) Work item 9701 - Auto-detect which reader to invoke -- Feature: (ET) Work item 9214 - Deprecate insertion of dates using PHP-time (Unix time) [request for removal of feature] -- Feature: (ET) Work item 9747 - Support for entering time values like '9:45', '09:45' using AdvancedValueBinder -- Feature: (ET) Work item 9797 - DataType dependent horizontal alignment in HTML and PDF writer -- Bugfix: (MB) Work item 9375 - Cloning data validation object causes script to stop -- Bugfix: (ET) Work item 9400 - Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 9399 - Simultaneous repeating rows and repeating columns not working with PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 9437 - Row outline level not working with PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 9452 - Occasional notices with PHPExcel_Reader_Excel5 when Excel file contains drawing elements -- Bugfix: (ET) Work item 9453 - PHPExcel_Reader_Excel5 fails as a whole when workbook contains images other than JPEG/PNG -- Bugfix: (ET) Work item 9444 - Excel5 writer checks for iconv but does not necessarily use it -- Bugfix: (ET) Work item 9463 - Altering a style on copied worksheet alters also the original -- Bugfix: (MB) Work item 9480 - Formulas are incorrectly updated when a sheet is renamed -- Bugfix: (MB) Work item 9513 - PHPExcel_Worksheet::extractSheetTitle not treating single quotes correctly -- Bugfix: (MB) Work item 9477 - PHP Warning raised in function array_key_exists -- Bugfix: (MB) Work item 9599 - getAlignWithMargins() gives wrong value when using PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 9600 - getScaleWithDocument() gives wrong value when using PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 9630 - PHPExcel_Reader_Excel2007 not reading the first user-defined number format -- Bugfix: (MB) Work item 9647 - Print area converted to uppercase after read with PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 9661 - Incorrect reading of scope for named range using PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 9690 - Error with pattern (getFillType) and rbg (getRGB) -- Bugfix: (ET) Work item 9712 - AdvancedValueBinder affected by system timezone setting when inserting date values -- Bugfix: (ET) Work item 9743 - PHPExcel_Reader_Excel2007 not reading value of active sheet index -- Bugfix: (ET) Work item 9742 - getARGB() sometimes returns SimpleXMLElement object instead of string with PHPExcel_Reader_Excel2007 -- Bugfix: (ET) Work item 9731 - Negative image offset causes defects in 14excel5.xls and 20readexcel5.xlsx -- Bugfix: (ET) Work item 9758 - HTML & PDF Writer not working with mergeCells (regression since 1.6.5) -- Bugfix: (ET) Work item 9774 - Too wide columns with HTML and PDF writer -- Bugfix: (MB) Work item 9775 - PDF and cyrillic fonts -- Bugfix: (ET) Work item 9793 - Percentages not working correctly with HTML and PDF writers (shows 0.25% instead of 25%) -- Bugfix: (ET) Work item 9791 - PHPExcel_Writer_HTML creates extra borders around cell contents using setUseInlineCss(true) -- Bugfix: (ET) Work item 9784 - Problem with text wrap + merged cells in HTML and PDF writer -- Bugfix: (ET) Work item 9814 - Adjacent path separators in include_path causing IOFactory to violate open_basedir restriction - - --------------------------------------------------------------------------------- -BREAKING CHANGE! In previous versions of PHPExcel up to and including 1.6.6, -when a cell had a date-like number format code, it was possible to enter a date -directly using an integer PHP-time without converting to Excel date format. - -Starting with PHPExcel 1.6.7 this is no longer supported. Refer to the developer -documentation for more information on entering dates into a cell. --------------------------------------------------------------------------------- - - -2009/03/02 (v1.6.6): -- General: (MB) Work item 9102 - Improve support for built-in number formats in PHPExcel_Reader_Excel2007 -- General: (ET) Work item 9281 - Source files are in both UNIX and DOS formats - changed to UNIX -- General: (MB) Work item 9338 - Update documentation: Which language to write formulas in? -- Feature: (ET) Work item 8817 - Ignore DEFCOLWIDTH records with value 8 in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 8847 - Support for width, height, offsetX, offsetY for images in PHPExcel_Reader_Excel5 -- Feature: (MB) Work item 8870 - Disk Caching in specific folder -- Feature: (MBaker) Work item 2346 - Added SUMX2MY2, SUMX2PY2, SUMXMY2, MDETERM and MINVERSE Mathematical and Trigonometric Functions -- Feature: (MBaker) Work item 2346 - Added CONVERT Engineering Function -- Feature: (MBaker) Work item 2346 - Added DB, DDB, DISC, DOLLARDE, DOLLARFR, INTRATE, IPMT, PPMT, PRICEDISC, PRICEMAT and RECEIVED Financial Functions -- Feature: (MBaker) Work item 2346 - Added ACCRINTM, CUMIPMT, CUMPRINC, TBILLEQ, TBILLPRICE, TBILLYIELD, YIELDDISC and YIELDMAT Financial Functions -- Feature: (MBaker) Work item 2346 - Added DOLLAR Text Function -- Feature: (MBaker) Work item 2346 - Added CORREL, COVAR, FORECAST, INTERCEPT, RSQ, SLOPE and STEYX Statistical Functions -- Feature: (MBaker) Work item 2346 - Added PEARSON Statistical Functions as a synonym for CORREL -- Feature: (MBaker) Work item 2346 - Added LINEST, LOGEST (currently only valid for stats = false), TREND and GROWTH Statistical Functions -- Feature: (MBaker) Work item 2346 - Added RANK and PERCENTRANK Statistical Functions -- Feature: (MBaker) Work item 2346 - Added ROMAN Mathematical Function (Classic form only) -- Feature: (MB) Work item 8931 - Update documentation to show example of getCellByColumnAndRow($col, $row) -- Feature: (MB) Work item 8770 - Implement worksheet, row and cell iterators -- Feature: (MB) Work item 9001 - Support for arbitrary defined names (named range) -- Feature: (MB, ET) Work item 9016 - Update formulas when sheet title / named range title changes -- Feature: (MB) Work item 9103 - Ability to read cached calculated value -- Feature: (MBaker, ET) Work item 8483 - Support for Excel 1904 calendar date mode (Mac) -- Feature: (ET) Work item 9194 - PHPExcel_Writer_Excel5 improvements writing shared strings table -- Feature: (ET) Work item 9248 - PHPExcel_Writer_Excel5 iconv fallback when mbstring extension is not enabled -- Feature: (ET) Work item 9253 - UTF-8 support in font names in PHPExcel_Writer_Excel5 -- Feature: (MB) Work item 9215 - Implement value binding architecture -- Feature: (MB) Work item 6742 - PDF writer not working with UTF-8 -- Feature: (ET) Work item 9355 - Eliminate duplicate style entries in multisheet workbook written by PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8810 - Redirect to client browser fails due to trailing white space in class definitions -- Bugfix: (MB) Work item 8816 - Spurious column dimension element introduced in blank worksheet after using PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 8830 - Image gets slightly narrower than expected when using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8831 - Image laid over non-visible row gets squeezed in height when using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8860 - PHPExcel_Reader_Excel5 fails when there are 10 or more images in the workbook -- Bugfix: (MB) Work item 8909 - Different header/footer images in different sheets not working with PHPExcel_Writer_Excel2007 -- Bugfix: (MB, ET) Work item 8924 - Fractional seconds disappear when using PHPExcel_Reader_Excel2007 and PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 7994 - Images not showing in OpenOffice when using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 9047 - Images not showing on print using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 9085 - PHPExcel_Writer_Excel5 maximum allowed record size 4 bytes too short -- Bugfix: (MB) Work item 9119 - Not numeric strings are formatted as dates and numbers using worksheet's toArray method -- Bugfix: (ET) Work item 9132 - Excel5 simple formula parsing error -- Bugfix: (ET) Work item 9206 - Problems writing dates with CSV -- Bugfix: (ET) Work item 9203 - PHPExcel_Reader_Excel5 reader fails with fatal error when reading group shapes -- Bugfix: (ET) Work item 9231 - PHPExcel_Writer_Excel5 fails completely when workbook contains more than 57 colors -- Bugfix: (ET) Work item 9244 - PHPExcel_Writer_PDF not compatible with autoload -- Bugfix: (ET) Work item 9250 - Fatal error: Call to a member function getNestingLevel() on a non-object in PHPExcel/Reader/Excel5.php on line 690 -- Bugfix: (MB) Work item 9246 - Notices when running test 04printing.php on PHP 5.2.8 -- Bugfix: (MB) Work item 9294 - insertColumn() spawns creation of spurious RowDimension -- BugFix: (MBaker) Work item 9296 - Fix declarations for methods in extended Trend classes -- Bugfix: (MBaker) Work item 2346 - Fix to parameters for the FORECAST Statistical Function -- Bugfix: (MB) Work item 7083 - PDF writer problems with cell height and text wrapping -- Bugfix: (MBaker) Work Item 9337 - Fix test for calculated value in case the returned result is an array -- Bugfix: (ET) Work Item 9354 - Column greater than 256 results in corrupt Excel file using PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 9351 - Excel Numberformat 0.00 results in non internal decimal places values in toArray() Method -- Bugfix: (MB,ET) Work item 9356 - setAutoSize not taking into account text rotation -- Bugfix: (ET) Work item 9372 - Call to undefined method PHPExcel_Worksheet_MemoryDrawing::getPath() in PHPExcel/Writer/HTML.php - - -2009/01/05 (v1.6.5): -- General: (MB) Applied patch 2063 -- General: (MB) Applied patch from work item 8073 - Optimise Shared Strings -- General: (MB) Applied patch from work item 8074 - Optimise Cell Sorting -- General: (MB) Applied patch from work item 8075 - Optimise Style Hashing -- General: (ET) Applied patch from work item 8245 - UTF-8 enhancements -- General: (ET) Applied patch from work item 8283 - PHPExcel_Writer_HTML validation errors against strict HTML 4.01 / CSS 2.1 -- General: (MB) Documented work items 6203 and 8110 in manual -- General: (ET) Restructure package hierachy so classes can be found more easily in auto-generated API (from work item 8468) -- General: (MB) Work item 8806 - Redirect output to a client's browser: Update recommendation in documentation -- Feature: (ET) Work item 7897 - PHPExcel_Reader_Excel5 support for print gridlines -- Feature: (ET) Work item 7899 - Screen gridlines support in Excel5 reader/writer -- Feature: (MB, ET) Work item 7552 - Option for adding image to spreadsheet from image resource in memory -- Feature: (ET) Work item 7862 - PHPExcel_Reader_Excel5 style support for BIFF5 files (Excel 5.0 - Excel 95) -- Feature: (ET) Work item 7918 - PHPExcel_Reader_Excel5 support for user-defined colors and special built-in colors -- Feature: (ET) Work item 7992 - Support for freeze panes in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 7996 - Support for header and footer margins in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 7997 - Support for active sheet index in Excel5 reader/writer -- Feature: (MB) Work item 7991 - Freeze panes not read by PHPExcel_Reader_Excel2007 -- Feature: (MB, ET) Work item 7993 - Support for screen zoom level (feature request) -- Feature: (ET) Work item 8012 - Support for default style in PHPExcel_Reader_Excel5 -- Feature: (MB) Work item 8094 - Apple iWork / Numbers.app incompatibility -- Feature: (MB) Work item 7931 - Support "between rule" in conditional formatting -- Feature: (MB) Work item 8308 - Comment size, width and height control (feature request) -- Feature: (ET) Work item 8418 - Improve method for storing MERGEDCELLS records in PHPExcel_Writer_Excel5 -- Feature: (ET) Work item 8435 - Support for protectCells() in Excel5 reader/writer -- Feature: (ET) Work item 8472 - Support for fitToWidth and fitToHeight pagesetup properties in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 8489 - Support for setShowSummaryBelow() and setShowSummaryRight() in PHPExcel_Writer_Excel5 -- Feature: (MB) Work item 8483 - Support for Excel 1904 calendar date mode (Mac) -- Feature: (ET) Work item 7538 - Excel5 reader: Support for reading images (bitmaps) -- Feature: (ET) Work item 8787 - Support for default style in PHPExcel_Writer_Excel5 -- Feature: (MBaker) Modified calculate() method to return either an array or the first value from the array for those functions that return arrays rather than single values (e.g the MMULT and TRANSPOSE function). This performance can be modified based on the $returnArrayAsType which can be set/retrieved by calling the setArrayReturnType() and getArrayReturnType() methods of the PHPExcel_Calculation class. -- Feature: (MBaker) Work item 2346 - Added ERROR.TYPE Information Function, MMULT Mathematical and Trigonometry Function, and TRANSPOSE Lookup and Reference Function -- Bugfix: (ET) Work item 7896 - setPrintGridlines(true) not working with PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7907 - Incorrect mapping of fill patterns in PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 7898 - setShowGridlines(false) not working with PHPExcel_Writer_Excel2007 -- Bugfix: (MB) Work item 7905 - getShowGridlines() gives inverted value when reading sheet with PHPExcel_Reader_Excel2007 -- Bugfix: (ET) Work item 7944 - User-defined column width becomes slightly larger after read/write with Excel5 -- Bugfix: (ET) Work item 7949 - Incomplete border style support in PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 7928 - Conditional formatting "containsText" read/write results in MS Office Excel 2007 crash -- Bugfix: (MB) Work item 7995 - All sheets are always selected in output when using PHPExcel_Writer_Excel2007 -- Bugfix: (MB) Work item 8013 - COLUMN function warning message during plain read/write -- Bugfix: (MB) Work item 8155 - setValue(0) results in string data type '0' -- Bugfix: (MB) Work item 8226 - Styles not removed when removing rows from sheet -- Bugfix: (MB) Work item 8301 - =IF formula causes fatal error during $objWriter->save() in Excel2007 format -- Bugfix: (ET) Work item 8333 - Exception thrown reading valid xls file: "Excel file is corrupt. Didn't find CONTINUE record while reading shared strings" -- Bugfix: (ET) Work item 8320 - MS Outlook corrupts files generated by PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 8351 - Undefined method PHPExcel_Worksheet::setFreezePane() in ReferenceHelper.php on line 271 -- Bugfix: (MB) Work item 8401 - Ampersands (&), left and right angles (<, >) in Rich-Text strings leads to corrupt output using PHPExcel_Writer_Excel2007 -- Bugfix: (ET) Work item 8408 - Print header and footer not supporting UTF-8 in PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8463 - Vertical page breaks not working with PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8476 - Missing support for accounting underline types in PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8482 - Infinite loops when reading corrupt xls file using PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 8566 - Sheet protection password not working with PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8596 - PHPExcel_Style_NumberFormat::FORMAT_NUMBER ignored by PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8781 - PHPExcel_Reader_Excel5 fails a whole when workbook contains a chart -- Bugfix: (ET) Work item 8788 - Occasional loss of column widths using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 8795 - Notices while reading formulas with deleted sheet references using PHPExcel_Reader_Excel5 -- Bugfix: (MB) Work item 8807 - Default style not read by PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 9341 - Blank rows occupy too much space in file generated by PHPExcel_Writer_Excel2007 - - -2008/10/27 (v1.6.4): -- General: (ET) Work item 7882 - RK record number error in MS developer documentation: 0x007E should be 0x027E -- Feature: (MBaker) Work item 7878 - getHighestColumn() returning "@" for blank worksheet causes corrupt output -- Feature: (MBaker) Work item 2346 - Implement ROW and COLUMN Lookup/Reference Functions (when specified with a parameter) -- Feature: (MBaker) Work item 2346 - Implement initial work on OFFSET Lookup/Reference Function (returning address rather than value at address) -- Feature: (ET) Work item 7416 - Excel5 reader: Page margins -- Feature: (ET) Work item 7417 - Excel5 reader: Header & Footer -- Feature: (ET) Work item 7449 - Excel5 reader support for page setup (paper size etc.) -- Feature: (MB) Work item 7445 - Improve speed and memory consumption of PHPExcel_Writer_CSV -- Feature: (MB) Work item 7432 - Better recognition of number format in HTML, CSV, and PDF writer -- Feature: (MB) Work item 7485 - Font support: Superscript and Subscript -- Feature: (ET) Work item 7509 - Excel5 reader font support: Super- and subscript -- Feature: (ET) Work item 7521 - Excel5 reader style support: Text rotation and stacked text -- Feature: (ET) Work item 7530 - Excel5 reader: Support for hyperlinks -- Feature: (MB, ET) Work item 7557 - Import sheet by request -- Feature: (ET) Work item 7607 - PHPExcel_Reader_Excel5 support for page breaks -- Feature: (ET) Work item 7622 - PHPExcel_Reader_Excel5 support for shrink-to-fit -- Feature: (MB, ET) Work item 7675 - Support for error types -- Feature: (ET) Work item 7388 - Excel5 reader true formula support -- Feature: (ET) Work item 7701 - Support for named ranges (defined names) in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 7781 - Support for repeating rows and repeating columns (print titles) in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 7783 - Support for print area in PHPExcel_Reader_Excel5 -- Feature: (ET) Work item 7795 - Excel5 reader and writer support for horizontal and vertical centering of page -- Feature: (MB) Applied patch 1962 -- Feature: (ET) Work item 7866 - Excel5 reader and writer support for hidden cells (formulas) -- Feature: (MB, ET) Work item 7612 - Support for indentation in cells (feature request) -- Feature: (MB, ET) Work item 7828 - Option for reading only specified interval of rows in a sheet -- Bugfix: (MBaker) Work item 7367 - PHPExcel_Calculation_Functions::DATETIMENOW() and PHPExcel_Calculation_Functions::DATENOW() to force UTC -- Bugfix: (MBaker) Work item 7395 - Modified PHPExcel_Shared_Date::FormattedPHPToExcel() and PHPExcel_Shared_Date::ExcelToPHP to force datatype for return values -- Bugfix: (ET) Work item 7450 - Excel5 reader not producing UTF-8 strings with BIFF5 files -- Bugfix: (MB) Work item 7470 - Array constant in formula gives run-time notice with Excel2007 writer -- Bugfix: (MB) Work item 7494 - PHPExcel_Reader_Excel2007 setReadDataOnly(true) returns Rich-Text -- Bugfix: (ET) Work item 7496 - PHPExcel_Reader_Excel5 setReadDataOnly(true) returns Rich-Text -- Bugfix: (MB) Work item 7497 - Characters before superscript or subscript losing style -- Bugfix: (MB) Work item 7507 - Subscript not working with HTML writer -- Bugfix: (MB) Work item 7508 - DefaultColumnDimension not working on first column (A) -- Bugfix: (MB) Work item 7527 - Negative numbers are stored as text in PHPExcel_Writer_2007 -- Bugfix: (ET) Work item 7531 - Text rotation and stacked text not working with PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 7536 - PHPExcel_Shared_Date::isDateTimeFormatCode erroneously says true -- Bugfix: (MB) Work item 7559 - Different images with same filename in separate directories become duplicates -- Bugfix: (ET) Work item 7568 - PHPExcel_Reader_Excel5 not returning sheet names as UTF-8 using for Excel 95 files -- Bugfix: (MB) Work item 7575 - setAutoSize(true) on empty column gives column width of 10 using PHPExcel_Writer_Excel2007 -- Bugfix: (MB, ET) Work item 7573 - setAutoSize(true) on empty column gives column width of 255 using PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 7514 - Worksheet_Drawing bug -- Bugfix: (MB) Work item 7593 - getCalculatedValue() with REPT function causes script to stop -- Bugfix: (MB) Work item 7594 - getCalculatedValue() with LEN function causes script to stop -- Bugfix: (MB) Work item 7600 - Explicit fit-to-width (page setup) results in fit-to-height becoming 1 -- Bugfix: (MB) Work item 7610 - Fit-to-width value of 1 is lost after read/write of Excel2007 spreadsheet -- Bugfix: (MB) Work item 7516 - Conditional styles not read properly using PHPExcel_Reader_Excel2007 -- Bugfix: (MB) Work item 7611 - PHPExcel_Writer_2007: Default worksheet style works only for first sheet -- Bugfix: (ET) Work item 6940 - Cannot Lock Cells using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7621 - Incorrect cell protection values found when using Excel5 reader -- Bugfix: (ET) Work item 7623 - Default row height not working above highest row using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7637 - Default column width does not get applied when using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7642 - Broken support for UTF-8 string formula results in PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 7643 - UTF-8 sheet names not working with PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 7631 - getCalculatedValue() with ISNONTEXT function causes script to stop -- Bugfix: (ET) Work item 7652 - Missing BIFF3 functions in PHPExcel_Writer_Excel5: USDOLLAR (YEN), FINDB, SEARCHB, REPLACEB, LEFTB, RIGHTB, MIDB, LENB, ASC, DBCS (JIS) -- Bugfix: (ET) Work item 7663 - Excel5 reader doesn't read numbers correctly in 64-bit systems -- Bugfix: (ET) Work item 7667 - Missing BIFF5 functions in PHPExcel_Writer_Excel5: ISPMT, DATEDIF, DATESTRING, NUMBERSTRING -- Bugfix: (ET) Work item 7668 - Missing BIFF8 functions in PHPExcel_Writer_Excel5: GETPIVOTDATA, HYPERLINK, PHONETIC, AVERAGEA, MAXA, MINA, STDEVPA, VARPA, STDEVA, VARA -- Bugfix: (MB) Work item 7657 - Wrong host value in PHPExcel_Shared_ZipStreamWrapper::stream_open() -- Bugfix: (ET) Work item 7676 - PHPExcel_Reader_Excel5 not reading explicitly entered error types in cells -- Bugfix: (ET) Work item 7678 - Boolean and error data types not preserved for formula results in PHPExcel_Reader_Excel5 -- Bugfix: (MB) Work item 7695 - PHPExcel_Reader_Excel2007 ignores cell data type -- Bugfix: (ET) Work item 7712 - PHPExcel_Reader_Excel5 ignores cell data type -- Bugfix: (ET) Work item 7587 - PHPExcel_Writer_Excel5 not aware of data type -- Bugfix: (ET) Work item 7713 - Long strings sometimes truncated when using PHPExcel_Reader_Excel5 -- Bugfix: (ET) Work item 7727 - Direct entry of boolean or error type in cell not supported by PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 7714 - PHPExcel_Reader_Excel2007: Error reading cell with data type string, date number format, and numeric-like cell value -- Bugfix: (ET) Work item 7735 - Row and column outlines (group indent level) not showing after using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7737 - Missing UTF-8 support in number format codes for PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7750 - Missing UTF-8 support with PHPExcel_Writer_Excel5 for explicit string in formula -- Bugfix: (MB) Work item 7726 - Problem with class constants in PHPExcel_Style_NumberFormat -- Bugfix: (ET) Work item 7758 - Sometimes errors with PHPExcel_Reader_Excel5 reading hyperlinks -- Bugfix: (ET) Work item 7759 - Hyperlink in cell always results in string data type when using PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7771 - Excel file with blank sheet seen as broken in MS Office Excel 2007 when created by PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7785 - PHPExcel_Reader_Excel5: Incorrect reading of formula with explicit string containing (escaped) double-quote -- Bugfix: (MB) Work item 7787 - getCalculatedValue() fails on formula with sheet name containing (escaped) single-quote -- Bugfix: (MB) Work item 7786 - getCalculatedValue() fails on formula with explicit string containing (escaped) double-quote -- Bugfix: (MB) Work item 7780 - Problems with simultaneous repeatRowsAtTop and repeatColumnsAtLeft using Excel2007 reader and writer -- Bugfix: (ET) Work item 7802 - PHPExcel_Reader_Excel5: Error reading formulas with sheet reference containing special characters -- Bugfix: (ET) Work item 7831 - Off-sheet references sheet!A1 not working with PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7834 - Repeating rows/columns (print titles), print area not working with PHPExcel_Writer_Excel5 -- Bugfix: (ET) Work item 7849 - Formula having datetime number format shows as text when using PHPExcel_Writer_Excel5 -- Bugfix: (MBaker) Work item 7863 - Cannot set formula to hidden using applyFromArray() -- Bugfix: (MBaker) Work item 7805 - HTML/PDF Writers limited to 26 columns by calculateWorksheetDimension (erroneous comparison in getHighestColumn() method) -- Bugfix: (MB) Work item 7873 - Formula returning error type is lost when read by PHPExcel_Reader_Excel2007 -- Bugfix: (ET) Work item 7883 - PHPExcel_Reader_Excel5: Cell style lost for last column in group of blank cells -- Bugfix: (MB) Work item 7886 - Column width sometimes collapses to auto size using Excel2007 reader/writer -- Bugfix: (MB) Work item 9343 - Data Validation Formula = 0 crashes Excel - - -2008/08/25 (v1.6.3): -- Bugfix: (MBaker) Work item 7367 - Modified PHPExcel_Shared_Date::PHPToExcel() to force UTC -- General: (MB) Applied patch 1629 -- General: (MB) Applied patch 1644 -- General: (MB) Work item 6485 - Implement repeatRow and repeatColumn in Excel5 writer -- General: (MB) Work item 6838 - Remove scene3d filter in Excel2007 drawing -- Feature: (MBaker) Work item 2346 - Implement CHOOSE and INDEX Lookup/Reference Functions -- Feature: (MBaker) Work item 2346 - Implement CLEAN Text Functions -- Feature: (MBaker) Work item 2346 - Implement YEARFRAC Date/Time Functions -- Feature: (MB) Work item 6508 - Implement 2 options for print/show gridlines -- Feature: (MB) Work item 7270 - Add VLOOKUP function (contribution) -- Feature: (MB) Work item 7182 - Implemented: ShrinkToFit -- Feature: (MB) Work item 7218 - Row heights not updated correctly when inserting new rows -- Feature: (MB) Work item 7157 - Copy worksheets within the same workbook -- Feature: (ET) Work item 7290 - Excel5 reader style support: horizontal and vertical alignment plus text wrap -- Feature: (ET) Work item 7294 - Excel5 reader support for merged cells -- Feature: (ET) Work item 7296 - Excel5 reader: Sheet Protection -- Feature: (ET) Work item 7297 - Excel5 reader: Password for sheet protection -- Feature: (ET) Work item 7299 - Excel5 reader: Column width -- Feature: (ET) Work item 7301 - Excel5 reader: Row height -- Feature: (ET) Work item 7304 - Excel5 reader: Font support -- Feature: (ET) Work item 7324 - Excel5 reader: support for locked cells -- Feature: (ET) Work item 7330 - Excel5 reader style support: Fill (background colors and patterns) -- Feature: (ET) Work item 7332 - Excel5 reader style support: Borders (style and color) -- Feature: (ET) Work item 7346 - Excel5 reader: Rich-Text support -- Feature: (MB) Work item 7313 - Read Excel built-in number formats with Excel 2007 reader -- Feature: (ET) Work item 7317 - Excel5 reader: Number format support -- Feature: (MB) Work item 7362 - Creating a copy of PHPExcel object -- Feature: (ET) Work item 7373 - Excel5 reader: support for row / column outline (group) -- Feature: (MB) Work item 7380 - Implement default row/column sizes -- Feature: (MB) Work item 7364 - Writer HTML - option to return styles and table separately -- Feature: (ET) Work item 7393 - Excel5 reader: Support for remaining built-in number formats -- Bugfix: (MBaker) Fixed rounding in HOUR MINUTE and SECOND Time functions, and improved performance for these -- Bugfix: (MBaker) Fix to TRIM function -- Bugfix: (MBaker) Fixed range validation in TIME Functions.php -- Bugfix: (MBaker) EDATE and EOMONTH functions now return date values based on the returnDateType flag -- Bugfix: (MBaker) Write date values that are the result of a calculation function correctly as Excel serialized dates rather than PHP serialized date values -- Bugfix: (MB) Work item 6690 - Excel2007 reader not always reading boolean correctly -- Bugfix: (MB) Work item 6275 - Columns above IZ -- Bugfix: (MB) Work item 6853 - Other locale than English causes Excel2007 writer to produce broken xlsx -- Bugfix: (MB) Work item 7061 - Typo: Number_fromat in NumberFormat.php -- Bugfix: (MB) Work item 6865 - Bug in Worksheet_BaseDrawing setWidth() -- Bugfix: (MB) Work item 6891 - PDF writer collapses column width for merged cells -- Bugfix: (MB) Work item 6867 - Issues with drawings filenames -- Bugfix: (MB) Work item 7073 - fromArray() local variable isn't defined -- Bugfix: (MB) Work item 7276 - PHPExcel_Writer_Excel5->setTempDir() not passed to all classes involved in writing to a file -- Bugfix: (MB) Work item 7277 - Excel5 reader not handling UTF-8 properly -- Bugfix: (MB) Work item 7327 - If you write a 0 value in cell, cell shows as empty -- Bugfix: (MB) Work item 7302 - Excel2007 writer: Row height ignored for empty rows -- Bugfix: (MB) Work item 7281 - Excel2007 (comments related error) -- Bugfix: (MB) Work item 7345 - Column width in other locale -- Bugfix: (MB) Work item 7347 - Excel2007 reader not reading underlined Rich-Text -- Bugfix: (ET) Work item 7357 - Excel5 reader converting booleans to strings -- Bugfix: (MB) Work item 7365 - Recursive Object Memory Leak -- Bugfix: (MB) Work item 7372 - Excel2007 writer ignoring row dimensions without cells -- Bugfix: (ET) Work item 7382 - Excel5 reader is converting formatted numbers / dates to strings - - -2008/06/23 (v1.6.2): -- General: (MB) Work item 6088 - Document style array values -- General: (MB) Applied patch 1195 -- General: (MB) Work item 6178 - Redirecting output to a client’s web browser - http headers -- General: (MB) Work item 6187 - Improve worksheet garbage collection -- General: (MBaker) Functions that return date values can now be configured to return as Excel serialized date/time, PHP serialized date/time, or a PHP date/time object. -- General: (MBaker) Functions that explicitly accept dates as parameters now permit values as Excel serialized date/time, PHP serialized date/time, a valid date string, or a PHP date/time object. -- General: (MBaker) Implement ACOSH, ASINH and ATANH functions for those operating platforms/PHP versions that don't include these functions -- General: (MBaker) Implement ATAN2 logic reversing the arguments as per Excel -- General: (MBaker) Additional validation of parameters for COMBIN -- General: (MBaker) Fixed validation for CEILING and FLOOR when the value and significance parameters have different signs; and allowed default value of 1 or -1 for significance when in GNUMERIC compatibility mode -- Feature: (MBaker) Work item 2346 - Implement ADDRESS, ISLOGICAL, ISTEXT and ISNONTEXT functions -- Feature: (MBaker) Work item 2346 - Implement COMPLEX, IMAGINARY, IMREAL, IMARGUMENT, IMCONJUGATE, IMABS, IMSUB, IMDIV, IMSUM, IMPRODUCT, IMSQRT, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER IMCOS and IMSIN Engineering functions -- Feature: (MBaker) Work item 2346 - Implement NETWORKDAYS and WORKDAY Date/Time functions -- Feature: (MB) Work item 6100 - Make cell column AAA available -- Feature: (MB) Work item 6095 - Mark particular cell as selected when opening Excel -- Feature: (MB) Work item 6120 - Multiple sheets in PDF and HTML -- Feature: (MB) Work item 6227 - Implement PHPExcel_ReaderFactory and PHPExcel_WriterFactory -- Feature: (MB) Work item 6249 - Set image root of PHPExcel_Writer_HTML -- Feature: (MB) Work item 6264 - Enable/disable calculation cache -- Feature: (MB) Work item 6259 - PDF writer and multi-line text -- Feature: (MB) Work item 6350 - Feature request - setCacheExpirationTime() -- Feature: (JB) Work item 6370 - Implement late-binding mechanisms to reduce memory footprint -- Feature: (JB) Work item 6430 - Implement shared styles -- Feature: (MB) Work item 6391 - Copy sheet from external Workbook to active Workbook -- Feature: (MB) Work item 6428 - Functions in Conditional Formatting -- Bugfix: (MB) Work item 6096 - Default Style in Excel5 -- Bugfix: (MB) Work item 6150 - Numbers starting with '+' cause Excel 2007 errors -- Bugfix: (MB) Work item 6092 - ExcelWriter5 is not PHP5 compatible, using it with E_STRICT results in a bunch of errors (applied patches) -- Bugfix: (MB) Work item 6179 - Error Reader Excel2007 line 653 foreach ($relsDrawing->Relationship as $ele) -- Bugfix: (MB) Work item 6229 - Worksheet toArray() screws up DATE -- Bugfix: (MB) Work item 6253 - References to a Richtext cell in a formula -- Bugfix: (MB) Work item 6285 - insertNewColumnBefore Bug -- Bugfix: (MB) Work item 6319 - Error reading Excel2007 file with shapes -- Bugfix: (MBaker) Work item 6302 - Determine whether date values need conversion from PHP dates to Excel dates before writing to file, based on the data type (float or integer) -- Bugfix: (MBaker) Fixes to DATE function when it is given negative input parameters -- Bugfix: (MB) Work item 6347 - PHPExcel handles empty cells other than Excel -- Bugfix: (MB) Work item 6348 - PHPExcel handles 0 and "" as being the same -- Bugfix: (MB) Work item 6357 - Problem Using Excel2007 Reader for Spreadsheets containing images -- Bugfix: (MB) Work item 6359 - ShowGridLines ignored when reading/writing Excel 2007 -- Bugfix: (MB) Work item 6426 - Bug With Word Wrap in Excel 2007 Reader - - -2008/04/28 (v1.6.1): -- General: (MB) Work item 5532 - Fix documentation printing -- General: (MB) Work item 5586 - Memory usage improvements -- General: (MB) Applied patch 990 -- General: (MB) Applied patch 991 -- Feature: (BM) Work item 2841 - Implement PHPExcel_Reader_Excel5 -- Feature: (MB) Work item 5564 - Implement "toArray" and "fromArray" method -- Feature: (MB) Work item 5665 - Read shared formula -- Feature: (MB) Work item 5681 - Read image twoCellAnchor -- Feature: (MB) Work item 4446 - &G Image as bg for headerfooter -- Feature: (MB) Work item 5834 - Implement page layout functionality for Excel5 format -- Feature: (MB) Work item 6039 - Feature request: PHPExcel_Writer_PDF -- Bugfix: (MB) Work item 5517 - DefinedNames null check -- Bugfix: (MB) Work item 5463 - Hyperlinks should not always have trailing slash -- Bugfix: (MB) Work item 5592 - Saving Error - Uncaught exception (#REF! named range) -- Bugfix: (MB) Work item 5634 - Error when creating Zip file on Linux System (Not Windows) -- Bugfix: (MB) Work item 5876 - Time incorrecly formated -- Bugfix: (MB) Work item 5914 - Conditional formatting - second rule not applied -- Bugfix: (MB) Work item 5978 - PHPExcel_Reader_Excel2007 cannot load PHPExcel_Shared_File -- Bugfix: (MB) Work item 6020 - Output redirection to web browser - - -2008/02/14 (v1.6.0): -- General: (MB) Work item 3156 - Use PHPExcel datatypes in formula calculation -- Feature: (MB) Work item 5019 - Center on page when printing -- Feature: (MB) Work item 5099 - Hyperlink to other spreadsheet -- Feature: (MB) Work item 5104 - Set the print area of a worksheet -- Feature: (MB) Work item 5118 - Read "definedNames" property of worksheet -- Feature: (MB) Work item 5338 - Set default style for all cells -- Feature: (MB) Work item 4216 - Named Ranges -- Feature: (MB) Work item 5398 - Implement worksheet references (Sheet1!A1) -- Bugfix: (MB) Work item 4967 - Redirect output to a client's web browser -- Bugfix: (MB) Work item 5008 - "File Error: data may have been lost." seen in Excel 2007 and Excel 2003 SP3 when opening XLS file -- Bugfix: (MB) Work item 5165 - Bug in style's getHashCode() -- Bugfix: (MB) Work item 5165 - PHPExcel_Reader not correctly reading numeric values -- Bugfix: (MB) Work item 5324 - Text rotation is read incorrectly -- Bugfix: (MB) Work item 5326 - Enclosure " and data " result a bad data : \" instead of "" -- Bugfix: (MB) Work item 5332 - Formula parser - IF statement returning array instead of scalar -- Bugfix: (MB) Work item 5351 - setFitToWidth(nbpage) & setFitToWidth(nbpage) work partially -- Bugfix: (MB) Work item 5361 - Worksheet::setTitle() causes unwanted renaming -- Bugfix: (MB) Work item 5407 - Hyperlinks not working. Results in broken xlsx file. - - -2007/12/24 (v1.5.5): -- General: (MB) Work item 4135 - Grouping Rows -- General: (MB) Work item 4427 - Semi-nightly builds -- Feature: (MB) Work item 3155 - Implement "date" datatype -- Feature: (MB) Work item 4150 - Date format not honored in CSV writer -- Feature: (MB) Work item 4199 - RichText and sharedStrings -- Feature: (MB) Work item 2346 - Implement more Excel calculation functions - - Addition of DATE, DATEDIF, DATEVALUE, DAY, DAYS360 -- Feature: (MBaker) Work item 2346 - Implement more Excel calculation functions - - Addition of AVEDEV, HARMEAN and GEOMEAN - - Addition of the BINOMDIST (Non-cumulative only), COUNTBLANK, EXPONDIST, FISHER, FISHERINV, NORMDIST, NORMSDIST, PERMUT, POISSON (Non-cumulative only) and STANDARDIZE Statistical Functions - - Addition of the CEILING, COMBIN, EVEN, FACT, FACTDOUBLE, FLOOR, MULTINOMIAL, ODD, ROUNDDOWN, ROUNDUP, SIGN, SQRTPI and SUMSQ Mathematical Functions - - Addition of the NORMINV, NORMSINV, CONFIDENCE and SKEW Statistical Functions - - Addition of the CRITBINOM, HYPGEOMDIST, KURT, LOGINV, LOGNORMDIST, NEGBINOMDIST and WEIBULL Statistical Functions - - Addition of the LARGE, PERCENTILE, QUARTILE, SMALL and TRIMMEAN Statistical Functions - - Addition of the BIN2HEX, BIN2OCT, DELTA, ERF, ERFC, GESTEP, HEX2BIN, HEX2DEC, HEX2OCT, OCT2BIN and OCT2HEX Engineering Functions - - Addition of the CHIDIST, GAMMADIST and GAMMALN Statistical Functions - - Addition of the GCD, LCM, MROUND and SUBTOTAL Mathematical Functions - - Addition of the LOWER, PROPER and UPPER Text Functions - - Addition of the BETADIST and BETAINV Statistical Functions - - Addition of the CHIINV and GAMMAINV Statistical Functions - - Addition of the SERIESSUM Mathematical Function - - Addition of the CHAR, CODE, FIND, LEN, REPT, SEARCH, T, TRIM Text Functions - - Addition of the FALSE and TRUE Boolean Functions - - Addition of the TDIST and TINV Statistical Functions - - Addition of the EDATE, EOMONTH, YEAR, MONTH, TIME, TIMEVALUE, HOUR, MINUTE, SECOND, WEEKDAY, WEEKNUM, NOW, TODAY and Date/Time Function - - Addition of the BESSELI, BESSELJ, BESSELK and BESSELY Engineering Functions - - Addition of the SLN and SYD Financial Functions - - reworked MODE calculation to handle floating point numbers - - Improved error trapping for invalid input values - - Fix to SMALL, LARGE, PERCENTILE and TRIMMEAN to eliminate non-numeric values - - Added CDF to BINOMDIST and POISSON - - Fix to a potential endless loop in CRITBINOM, together with other bugfixes to the algorithm - - Fix to SQRTPI so that it will work with a real value parameter rather than just integers - - Trap for passing negative values to FACT - - Improved accuracy of the NORMDIST cumulative function, and of the ERF and ERFC functions - - Replicated Excel data-type and error handling for BIN, DEC, OCT and HEX conversion functions - - Replicated Excel data-type and error handling for AND and OR Boolean functions - - Bugfix to MROUND - - Rework of the DATE, DATEVALUE, DAY, DAYS360 and DATEDIF date/Time functions to use Excel dates rather than straight PHP dates - - Rework of the AND, OR Boolean functions to ignore string values - - Rework of the BIN2DEC, BIN2HEX, BIN2OCT, DEC2BIN, DEC2HEX, DEC2OCT Engineering functions to handle two's complement - - Excel, Gnumeric and OpenOffice Calc compatibility flag for functions - Note, not all functions have yet been written to work with the Gnumeric and OpenOffice Calc compatibility flags - - 1900 or 1904 Calendar flag for date functions - - Reworked ExcelToPHP date method to handle the Excel 1900 leap year - Note that this will not correctly return values prior to 13-Dec-1901 20:45:52 as this is the minimum value that PHP date serial values can handle. If you need to work with dates prior to this, then an ExcelToPHPObject method has been added which will work correctly with values between Excel's 1900 calendar base date of 1-Jan-1900, and 13-Dec-1901 - - Addition of ExcelToPHPObject date method to return a PHP DateTime object from an Excel date serial value - - PHPToExcel method modified to accept either PHP date serial numbers or PHP DateTime objects - - Addition of FormattedPHPToExcel which will accept a date and time broken to into year, month, day, hour, minute, second and return an Excel date serial value -- Feature: (MB) Work item 4485 - Control characters in Excel 2007 -- Feature: (MB) Work item 4796 - BaseDrawing::setWidthAndHeight method request -- Feature: (MB) Work item 4798 - Page Setup -> Print Titles -> Sheet -> 'Rows to repeat at top' -- Feature: (MB) Work item 4433 - Comment functionality -- Bugfix: (MB) Work item 4124 - Undefined variable in PHPExcel_Writer_Serialized -- Bugfix: (MB) Work item 4125 - Notice: Object of class PHPExcel_RichText could not be converted to int -- Bugfix: (MB) Work item 4126 - Excel5Writer: utf8 string not converted to utf16 -- Bugfix: (MB) Work item 4180 - PHPExcel_RichText and autosize -- Bugfix: (MB) Work item 4574 - Excel5Writer produces broken xls files after change mentioned in work item 4126 -- Bugfix: (MB) Work item 4797 - Small bug in PHPExcel_Reader_Excel2007 function _readStyle - - -2007/10/23 (v 1.5.0): -- General: (MB) Work item 3265 - Refactor PHPExcel Drawing -- Feature: (CS) Work item 3079 - Update Shared/OLE.php to latest version from PEAR -- Feature: (MB) Work item 3217 - Excel2007 vs Excel2003 compatibility pack -- Feature: (MB) Work item 3234 - Cell protection (lock/unlock) -- Feature: (MB) Work item 3543 - Create clickable links (hyperlinks) -- Feature: (MB) Work item 3241 - Additional page setup parameters -- Feature: (MB) Work item 3300 - Make temporary file path configurable (Excel5) -- Feature: (MB) Work item 3306 - Small addition to applyFromArray for font -- Feature: (MB) Work item 3373 - Better feedback when save of file is not possible -- Bugfix: (MB) Work item 3181 - Text Rotation -- Bugfix: (MB) Work item 3237 - Small bug in Page Orientation -- Bugfix: (MB) Work item 3812 - insertNewColumnBeforeByColumn undefined -- Bugfix: (MB) Work item 3893 - Sheet references not working in formula (Excel5 Writer) - - -2007/08/23 (v 1.4.5): -- General: (MB) Work item 3003 - Class file endings -- General: (MB) Work item 3081 - Different calculation engine improvements -- General: (MB) Work item 3082 - Different improvements in PHPExcel_Reader_Excel2007 -- General: (MB) Work item 3146 - Set XML indentation in PHPExcel_Writer_Excel2007 -- Feature: (MB) Work item 3159 - Optionally store temporary Excel2007 writer data in file instead of memory -- Feature: (MB) Work item 3063 - Implement show/hide gridlines -- Feature: (MB) Work item 3064 - Implement option to read only data -- Feature: (MB) Work item 3080 - Optionally disable formula precalculation -- Feature: (MB) Work item 3154 - Explicitly set cell datatype -- Feature: (MBaker) Work item 2346 - Implement more Excel calculation functions - - Addition of MINA, MAXA, COUNTA, AVERAGEA, MEDIAN, MODE, DEVSQ, STDEV, STDEVA, STDEVP, STDEVPA, VAR, VARA, VARP and VARPA Excel Functions - - Fix to SUM, PRODUCT, QUOTIENT, MIN, MAX, COUNT and AVERAGE functions when cell contains a numeric value in a string datatype, bringing it in line with MS Excel behaviour -- Bugfix: (MB) Work item 2881 - File_exists on ZIP fails on some installations -- Bugfix: (MB) Work item 2879 - Argument in textRotation should be -90..90 -- Bugfix: (MB) Work item 2883 - Excel2007 reader/writer not implementing OpenXML/SpreadsheetML styles 100% correct -- Bugfix: (MB) Work item 2513 - Active sheet index not read/saved -- Bugfix: (MB) Work item 2935 - Print and print preview of generated XLSX causes Excel2007 to crash -- Bugfix: (MB) Work item 2952 - Error in Calculations - COUNT() function -- Bugfix: (MB) Work item 3002 - HTML and CSV writer not writing last row -- Bugfix: (MB) Work item 3017 - Memory leak in Excel5 writer -- Bugfix: (MB) Work item 3044 - Printing (PHPExcel_Writer_Excel5) -- Bugfix: (MB) Work item 3046 - Problems reading zip:// -- Bugfix: (MB) Work item 3047 - Error reading conditional formatting -- Bugfix: (MB) Work item 3067 - Bug in Excel5 writer (storePanes) -- Bugfix: (MB) Work item 3077 - Memory leak in PHPExcel_Style_Color - - -2007/07/23 (v 1.4.0): -- General: (MB) Work item 2687 - Coding convention / code cleanup -- General: (MB) Work item 2717 - Use set_include_path in tests -- General: (MB) Work item 2812 - Move PHPExcel_Writer_Excel5 OLE to PHPExcel_Shared_OLE -- Feature: (MB) Work item 2679 - Hide/Unhide Column or Row -- Feature: (MB) Work item 2271 - Implement multi-cell styling -- Feature: (MB) Work item 2720 - Implement CSV file format (reader/writer) -- Feature: (MB) Work item 2845 - Implement HTML file format -- Bugfix: (MB) Work item 2513 - Active sheet index not read/saved -- Bugfix: (MB) Work item 2678 - Freeze Panes with PHPExcel_Writer_Excel5 -- Bugfix: (MB) Work item 2680 - OLE.php -- Bugfix: (MB) Work item 2736 - Copy and pasting multiple drop-down list cells breaks reader -- Bugfix: (MB) Work item 2775 - Function setAutoFilterByColumnAndRow takes wrong arguments -- Bugfix: (MB) Work item 2858 - Simplexml_load_file fails on ZipArchive - - -2007/06/27 (v 1.3.5): -- General: (MB) Work item 15 - Documentation -- Feature: (JV) PHPExcel_Writer_Excel5 -- Feature: (JV) PHPExcel_Reader_Excel2007: Image shadows -- Feature: (MB) Work item 2385 - Data validation -- Feature: (MB) Work item 187 - Implement richtext strings -- Bugfix: (MB) Work item 2443 - Empty relations when adding image to any sheet but the first one -- Bugfix: (MB) Work item 2536 - Excel2007 crashes on print preview - - -2007/06/05 (v 1.3.0): -- General: (MB) Work item 1942 - Create PEAR package -- General: (MB) Work item 2331 - Replace *->duplicate() by __clone() -- Feature: (JV) PHPExcel_Reader_Excel2007: Column auto-size, Protection, Merged cells, Wrap text, Page breaks, Auto filter, Images -- Feature: (MB) Work item 245 - Implement "freezing" panes -- Feature: (MB) Work item 2273 - Cell addressing alternative -- Feature: (MB) Work item 2270 - Implement cell word-wrap attribute -- Feature: (MB) Work item 2282 - Auto-size column -- Feature: (MB) Work item 241 - Implement formula calculation -- Feature: (MB) Work item 2375 - Insert/remove row/column -- Bugfix: (MB) Work item 1931 - PHPExcel_Worksheet::getCell() should not accept absolute coordinates -- Bugfix: (MB) Work item 2272 - Cell reference without row number -- Bugfix: (MB) Work item 2276 - Styles with same coordinate but different worksheet -- Bugfix: (MB) Work item 2290 - PHPExcel_Worksheet->getCellCollection() usort error -- Bugfix: (SS) Work item 2353 - Bug in PHPExcel_Cell::stringFromColumnIndex -- Bugfix: (JV) Work item 2353 - Reader: numFmts can be missing, use cellStyleXfs instead of cellXfs in styles - - -2007/04/26 (v 1.2.0): -- General: (MB) Stringtable attribute "count" not necessary, provides wrong info to Excel sometimes... -- General: (MB) Updated tests to address more document properties -- General: (MB) Some refactoring in PHPExcel_Writer_Excel2007_Workbook -- General: (MB) New package: PHPExcel_Shared -- General: (MB) Password hashing algorithm implemented in PHPExcel_Shared_PasswordHasher -- General: (MB) Moved pixel conversion functions to PHPExcel_Shared_Drawing -- General: (MB) Work item 244 - Switch over to LGPL license -- General: (MB) Work item 5 - Include PHPExcel version in file headers -- Feature: (MB) Work item 6 - Autofilter -- Feature: (MB) Work item 7 - Extra document property: keywords -- Feature: (MB) Work item 8 - Extra document property: category -- Feature: (MB) Work item 9 - Document security -- Feature: (MB) Work item 10 - PHPExcel_Writer_Serialized and PHPExcel_Reader_Serialized -- Feature: (MB) Work item 11 - Alternative syntax: Addressing a cell -- Feature: (MB) Work item 12 - Merge cells -- Feature: (MB) Work item 13 - Protect ranges of cells with a password -- Bugfix: (JV) Work item 14 - (style/fill/patternFill/fgColor or bgColor can be empty) - - -2007/03/26 (v 1.1.1): -- Bugfix: (MB) Work item 1250 - Syntax error in "Classes/PHPExcel/Writer/Excel2007.php" on line 243 -- General: (MB) Work item 1282 - Reader should check if file exists and throws an exception when it doesn't - - -2007/03/22 (v 1.1.0): -- Changed filenames of tests -- Bugfix: (MB) Work item 836 - Style information lost after passing trough Excel2007_Reader -- Bugfix: (MB) Work item 913 - Number of columns > AZ fails fixed in PHPExcel_Cell::columnIndexFromString -- General: (MB) Added a brief file with installation instructions -- Feature: (MB) Page breaks (horizontal and vertical) -- Feature: (MB) Image shadows - - - -2007/02/22 (v 1.0.0): -- Changelog now includes developer initials -- Bugfix: (JV) PHPExcel->removeSheetByIndex now re-orders sheets after deletion, so no array indexes are lost -- Bugfix: (JV) PHPExcel_Writer_Excel2007_Worksheet::_writeCols() used direct assignment to $pSheet->getColumnDimension('A')->Width instead of $pSheet->getColumnDimension('A')->setWidth() -- Bugfix: (JV) DocumentProperties used $this->LastModifiedBy instead of $this->_lastModifiedBy. -- Bugfix: (JV) Only first = should be removed when writing formula in PHPExcel_Writer_Excel2007_Worksheet. -- General: (JV) Consistency of method names to camelCase -- General: (JV) Updated tests to match consistency changes -- General: (JV) Detection of mime-types now with image_type_to_mime_type() -- General: (JV) Constants now hold string value used in Excel 2007 -- General: (MB) Fixed folder name case (WorkSheet -> Worksheet) -- Feature: (MB) PHPExcel classes (not the Writer classes) can be duplicated, using a duplicate() method. -- Feature: (MB) Cell styles can now be duplicated to a range of cells using PHPExcel_Worksheet->duplicateStyle() -- Feature: (MB) Conditional formatting -- Feature: (JV) Reader for Excel 2007 (not supporting full specification yet!) - - - -2007/01/31 (v 1.0.0 RC): -- Project name has been changed to PHPExcel -- Project homepage is now http://www.codeplex.com/PHPExcel -- Started versioning at number: PHPExcel 1.0.0 RC - - - -2007/01/22: -- Fixed some performance issues on large-scale worksheets (mainly loops vs. indexed arrays) -- Performance on creating StringTable has been increased -- Performance on writing Excel2007 worksheet has been increased - - - -2007/01/18: -- Images can now be rotated -- Fixed bug: When drawings have full path specified, no mime type can be deducted -- Fixed bug: Only one drawing can be added to a worksheet - - - -2007/01/12: -- Refactoring of some classes to use ArrayObject instead of array() -- Cell style now has support for number format (i.e. #,##0) -- Implemented embedding images - - - -2007/01/02: -- Cell style now has support for fills, including gradient fills -- Cell style now has support for fonts -- Cell style now has support for border colors -- Cell style now has support for font colors -- Cell style now has support for alignment - - - -2006/12/21: -- Support for cell style borders -- Support for cell styles -- Refactoring of Excel2007 Writer into multiple classes in package SpreadSheet_Writer_Excel2007 -- Refactoring of all classes, changed public members to public properties using getter/setter -- Worksheet names are now unique. On duplicate worksheet names, a number is appended. -- Worksheet now has parent SpreadSheet object -- Worksheet now has support for page header and footer -- Worksheet now has support for page margins -- Worksheet now has support for page setup (only Paper size and Orientation) -- Worksheet properties now accessible by using getProperties() -- Worksheet now has support for row and column dimensions (height / width) -- Exceptions thrown have a more clear description - - - -Initial version: -- Create a Spreadsheet object -- Add one or more Worksheet objects -- Add cells to Worksheet objects -- Export Spreadsheet object to Excel 2007 OpenXML format -- Each cell supports the following data formats: string, number, formula, boolean. \ No newline at end of file From c3bb4245b3d911adf82c2593a52495f01f1b3f7d Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Tue, 30 Aug 2016 00:51:51 +0900 Subject: [PATCH 25/29] Register autoload as the first in the list Yii framework v1.1 has it's own autoloader and its autoloader throws an error, when it can't find class. When this library initializes, it register its own autoloader, but places it at the end of autoload queue. So when I use library with Yii 1.1, I just face an error: `include(PHPExcel_Shared_String.php): failed to open stream: No such file or directory` because Yii's autoloader runs first and tries to include class file directly. Registering our autoloader first avoid this. --- src/Autoloader.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Autoloader.php b/src/Autoloader.php index 3ed00569..7bca2ef9 100644 --- a/src/Autoloader.php +++ b/src/Autoloader.php @@ -38,7 +38,7 @@ class Autoloader spl_autoload_register('__autoload'); } // Register ourselves with SPL - return spl_autoload_register([\PhpSpreadsheet\Autoloader::class, 'load']); + return spl_autoload_register([\PhpSpreadsheet\Autoloader::class, 'load'], true, true); } /** From 08525a10c1ffadaef7af346e322bca0a031593e4 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Wed, 31 Aug 2016 21:12:04 +0900 Subject: [PATCH 26/29] Improve documentation wording --- Documentation/markdown/Features/Autofilters/01-Autofilters.md | 4 ++-- .../markdown/Features/Autofilters/02-Setting-an-Autofilter.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Documentation/markdown/Features/Autofilters/01-Autofilters.md b/Documentation/markdown/Features/Autofilters/01-Autofilters.md index c2fbd2fa..8dd77df2 100644 --- a/Documentation/markdown/Features/Autofilters/01-Autofilters.md +++ b/Documentation/markdown/Features/Autofilters/01-Autofilters.md @@ -1,4 +1,4 @@ -# PHPExcel AutoFilter Reference +# PHPExcel AutoFilter Reference ## AutoFilters @@ -7,7 +7,7 @@ Each worksheet in an Excel Workbook can contain a single autoFilter range. Filte ![01-01-autofilter.png](./images/01-01-autofilter.png "") -When an AutoFilter is applied to a range of cells, the first row in an autofilter range will be the heading row, which displays the autoFilter dropdown icons. It is not part of the actual autoFiltered data. All subsequent rows are the autoFiltered data. So an AutoFilter range should always contain the heading row and one or more data rows (one data row is pretty meaningless), but PHPExcel won't actually stop you specifying a meaningless range: it's up to you as the developer to avoid such errors. +When an AutoFilter is applied to a range of cells, the first row in an autofilter range will be the heading row, which displays the autoFilter dropdown icons. It is not part of the actual autoFiltered data. All subsequent rows are the autoFiltered data. So an AutoFilter range should always contain the heading row and one or more data rows (one data row is pretty meaningless), but PHPExcel won't actually stop you specifying a meaningless range: it's up to you as a developer to avoid such errors. To determine if a filter is applied, note the icon in the column heading. A drop-down arrow (![01-03-filter-icon-1.png](./images/01-03-filter-icon-1.png "")) means that filtering is enabled but not applied. In MS Excel, when you hover over the heading of a column with filtering enabled but not applied, a screen tip displays the cell text for the first row in that column, and the message "(Showing All)". diff --git a/Documentation/markdown/Features/Autofilters/02-Setting-an-Autofilter.md b/Documentation/markdown/Features/Autofilters/02-Setting-an-Autofilter.md index 49c8fa4c..592d887f 100644 --- a/Documentation/markdown/Features/Autofilters/02-Setting-an-Autofilter.md +++ b/Documentation/markdown/Features/Autofilters/02-Setting-an-Autofilter.md @@ -1,4 +1,4 @@ -# PHPExcel AutoFilter Reference +# PHPExcel AutoFilter Reference ## Setting an AutoFilter area on a worksheet @@ -9,7 +9,7 @@ To set an autoFilter on a range of cells. $objPHPExcel->getActiveSheet()->setAutoFilter('A1:E20'); ``` -The first row in an autofilter range will be the heading row, which displays the autoFilter dropdown icons. It is not part of the actual autoFiltered data. All subsequent rows are the autoFiltered data. So an AutoFilter range should always contain the heading row and one or more data rows (one data row is pretty meaningless, but PHPExcel won't actually stop you specifying a meaningless range: it's up to you as the developer to avoid such errors. +The first row in an autofilter range will be the heading row, which displays the autoFilter dropdown icons. It is not part of the actual autoFiltered data. All subsequent rows are the autoFiltered data. So an AutoFilter range should always contain the heading row and one or more data rows (one data row is pretty meaningless, but PHPExcel won't actually stop you specifying a meaningless range: it's up to you as a developer to avoid such errors. If you want to set the whole worksheet as an autofilter region From 2922a13764dc30aa4c808a038af942de3274d048 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Thu, 1 Sep 2016 01:15:54 +0900 Subject: [PATCH 27/29] Reorganize code samples This introduce a helper class that should be used to log things, avoiding a lot of boilerplate code. Also all output are made in /tmp folder instead of beside the script itself. This is because there is a high chance that the folder containing the script is not writtable by webserver. So using the /tmp folder makes it more likely to works in a variety of setup. --- .php_cs | 1 + .travis.yml | 2 +- Examples/.gitignore | 12 - Examples/01pharSimple.php | 112 - Examples/01simple-download-ods.php | 88 - Examples/01simple-download-pdf.php | 103 - Examples/01simple-download-xls.php | 88 - Examples/01simple-download-xlsx.php | 88 - Examples/01simple.php | 140 - Examples/01simplePCLZip.php | 105 - Examples/02types.php | 229 - Examples/03formulas.php | 175 - Examples/04printing.php | 135 - Examples/05featuredemo.inc.php | 394 - Examples/05featuredemo.php | 74 - .../06largescale-with-cellcaching-sqlite.php | 129 - .../06largescale-with-cellcaching-sqlite3.php | 129 - Examples/06largescale-with-cellcaching.php | 128 - Examples/06largescale-xls.php | 136 - Examples/06largescale.php | 136 - Examples/07reader.php | 76 - Examples/07readerPCLZip.php | 79 - Examples/08conditionalformatting.php | 189 - Examples/08conditionalformatting2.php | 136 - Examples/09pagebreaks.php | 134 - Examples/10autofilter-selection-1.php | 221 - Examples/10autofilter-selection-2.php | 212 - Examples/10autofilter-selection-display.php | 198 - Examples/10autofilter.php | 171 - Examples/11documentsecurity-xls.php | 109 - Examples/11documentsecurity.php | 109 - Examples/12cellProtection.php | 107 - Examples/13calculation.php | 235 - Examples/13calculationCyclicFormulae.php | 97 - Examples/14excel5.php | 63 - Examples/15datavalidation-xls.php | 142 - Examples/15datavalidation.php | 143 - Examples/16csv.php | 105 - Examples/17html.php | 64 - Examples/18extendedcalculation.php | 108 - Examples/19namedrange.php | 129 - Examples/20readexcel5.php | 79 - Examples/21pdf.php | 94 - Examples/22heavilyformatted.php | 116 - Examples/23sharedstyles.php | 124 - Examples/24readfilter.php | 77 - Examples/25inmemoryimage.php | 89 - Examples/26utf8.php | 122 - Examples/27imagesexcel5.php | 64 - Examples/28iterator.php | 67 - Examples/29advancedvaluebinder.php | 183 - Examples/30template.php | 91 - Examples/31docproperties_write-xls.php | 119 - Examples/31docproperties_write.php | 119 - Examples/32chartreadwrite.php | 102 - Examples/33chartcreate-area.php | 142 - Examples/33chartcreate-bar-stacked.php | 145 - Examples/33chartcreate-bar.php | 145 - Examples/33chartcreate-column-2.php | 154 - Examples/33chartcreate-column.php | 145 - Examples/33chartcreate-composite.php | 203 - Examples/33chartcreate-line.php | 142 - Examples/33chartcreate-multiple-charts.php | 220 - Examples/33chartcreate-pie.php | 215 - Examples/33chartcreate-radar.php | 155 - Examples/33chartcreate-scatter.php | 139 - Examples/33chartcreate-stock.php | 151 - Examples/34chartupdate.php | 78 - Examples/35chartrender.php | 105 - Examples/36chartreadwriteHTML.php | 122 - Examples/36chartreadwritePDF.php | 145 - Examples/37page_layout_view.php | 83 - Examples/38cloneWorksheet.php | 118 - Examples/39dropdown.php | 175 - Examples/40duplicateStyle.php | 51 - Examples/41password.php | 84 - Examples/42richText.php | 171 - Examples/43mergeWorkbooks.php | 91 - Examples/44worksheetInfo.php | 57 - Examples/Excel2003XMLReader.php | 61 - Examples/Excel2003XMLTest.xml | 1 - Examples/GnumericReader.php | 60 - Examples/OOCalcReader.php | 61 - Examples/OOCalcReaderPCLZip.php | 64 - Examples/Quadratic.php | 68 - Examples/Quadratic.xlsx | Bin 8908 -> 0 bytes Examples/Quadratic2.php | 65 - Examples/SylkReader.php | 50 - Examples/XMLReader.php | 60 - Examples/XMLTest.xml | 450 - Examples/runall.php | 133 - samples/01_Simple.php | 63 + samples/01_Simple_PCLZip.php | 50 + samples/01_Simple_download_ods.php | 57 + samples/01_Simple_download_pdf.php | 66 + samples/01_Simple_download_xls.php | 57 + samples/01_Simple_download_xlsx.php | 56 + samples/02_Types.php | 156 + samples/03_Formulas.php | 79 + samples/04_Printing.php | 59 + samples/05_Feature_demo.php | 7 + samples/06_Largescale.php | 8 + samples/06_Largescale_with_cellcaching.php | 15 + .../06_Largescale_with_cellcaching_sqlite.php | 15 + ...06_Largescale_with_cellcaching_sqlite3.php | 15 + samples/07_Reader.php | 16 + samples/07_Reader_PCLZip.php | 20 + samples/08_Conditional_formatting.php | 109 + samples/08_Conditional_formatting_2.php | 65 + samples/09_Pagebreaks.php | 60 + samples/10_Autofilter.php | 99 + samples/10_Autofilter_selection_1.php | 150 + samples/10_Autofilter_selection_2.php | 142 + samples/10_Autofilter_selection_display.php | 165 + samples/11_Documentsecurity.php | 46 + samples/12_CellProtection.php | 44 + samples/13_Calculation.php | 175 + samples/13_CalculationCyclicFormulae.php | 31 + samples/14_Excel5.php | 11 + samples/15_Datavalidation.php | 77 + samples/16_Csv.php | 36 + samples/17_Html.php | 11 + samples/18_Extendedcalculation.php | 67 + samples/19_Namedrange.php | 67 + samples/20_Read_Excel2003XML.php | 11 + samples/20_Read_Excel5.php | 20 + samples/20_Read_Gnumeric.php | 11 + samples/20_Read_OOCalc.php | 11 + samples/20_Read_OOCalc_with_PCLZip.php | 14 + samples/20_Read_Sylk.php | 11 + samples/21_Pdf.php | 29 + samples/22_Heavily_formatted.php | 44 + samples/23_Sharedstyles.php | 54 + samples/24_Readfilter.php | 38 + samples/25_In_memory_image.php | 37 + samples/26_Utf8.php | 54 + samples/27_Images_excel5.php | 11 + samples/28_Iterator.php | 31 + samples/29_Advanced_value_binder.php | 129 + samples/30_Template.php | 40 + samples/31_Document_properties_write.php | 67 + samples/31_Document_properties_write_xls.php | 67 + samples/32_Chart_read_write.php | 80 + samples/32_Chart_read_write_HTML.php | 94 + samples/32_Chart_read_write_PDF.php | 110 + samples/33_Chart_create_area.php | 96 + samples/33_Chart_create_bar.php | 14 + samples/33_Chart_create_bar_stacked.php | 99 + samples/33_Chart_create_column.php | 99 + samples/33_Chart_create_column_2.php | 108 + samples/33_Chart_create_composite.php | 152 + samples/33_Chart_create_line.php | 96 + samples/33_Chart_create_multiple_charts.php | 171 + samples/33_Chart_create_pie.php | 166 + samples/33_Chart_create_radar.php | 108 + samples/33_Chart_create_scatter.php | 93 + samples/33_Chart_create_stock.php | 104 + samples/34_Chart_update.php | 36 + samples/35_Chart_render.php | 79 + samples/37_Page_layout_view.php | 29 + samples/38_Clone_worksheet.php | 55 + samples/39_Dropdown.php | 125 + samples/40_Duplicate_style.php | 32 + samples/41_Password.php | 12 + samples/42_RichText.php | 95 + samples/43_Merge_workbooks.php | 24 + samples/44_Worksheet_info.php | 23 + samples/45_Quadratic_equation_solver.php | 41 + samples/Header.php | 62 + samples/bootstrap/css/bootstrap.min.css | 6 + samples/bootstrap/css/font-awesome.min.css | 4 + samples/bootstrap/css/phpspreadsheet.css | 13 + samples/bootstrap/fonts/FontAwesome.otf | Bin 0 -> 124988 bytes .../bootstrap/fonts/fontawesome-webfont.eot | Bin 0 -> 76518 bytes .../bootstrap/fonts/fontawesome-webfont.svg | 685 + .../bootstrap/fonts/fontawesome-webfont.ttf | Bin 0 -> 152796 bytes .../bootstrap/fonts/fontawesome-webfont.woff | Bin 0 -> 90412 bytes .../bootstrap/fonts/fontawesome-webfont.woff2 | Bin 0 -> 71896 bytes samples/bootstrap/js/bootstrap.min.js | 7 + samples/bootstrap/js/jquery.min.js | 4 + .../data/continents/Africa.txt | 0 .../data/continents/Asia.txt | 0 .../data/continents/Europe.txt | 0 .../data/continents/North America.txt | 0 .../data/continents/Oceania.txt | 0 .../data/continents/South America.txt | 0 .../images/PhpSpreadsheet_logo.gif | Bin {Examples => samples}/images/officelogo.jpg | Bin {Examples => samples}/images/paid.png | Bin .../images/termsconditions.jpg | Bin samples/index.php | 39 + .../templates/26template.xlsx | Bin .../templates/27template.xls | Bin .../templates/28iterators.xlsx | Bin .../templates/30template.xls | Bin .../templates/31docproperties.xls | Bin .../templates/31docproperties.xlsx | Bin .../templates/32chartreadwrite.xlsx | Bin .../templates/32complexChartreadwrite.xlsx | Bin .../templates/32readwriteAreaChart1.xlsx | Bin .../templates/32readwriteAreaChart2.xlsx | Bin .../templates/32readwriteAreaChart3.xlsx | Bin .../templates/32readwriteAreaChart3D1.xlsx | Bin .../32readwriteAreaPercentageChart1.xlsx | Bin .../32readwriteAreaPercentageChart2.xlsx | Bin .../32readwriteAreaPercentageChart3D1.xlsx | Bin .../32readwriteAreaStackedChart1.xlsx | Bin .../32readwriteAreaStackedChart2.xlsx | Bin .../32readwriteAreaStackedChart3D1.xlsx | Bin .../templates/32readwriteBarChart1.xlsx | Bin .../templates/32readwriteBarChart2.xlsx | Bin .../templates/32readwriteBarChart3.xlsx | Bin .../templates/32readwriteBarChart3D1.xlsx | Bin .../32readwriteBarPercentageChart1.xlsx | Bin .../32readwriteBarPercentageChart2.xlsx | Bin .../32readwriteBarPercentageChart3D1.xlsx | Bin .../32readwriteBarStackedChart1.xlsx | Bin .../32readwriteBarStackedChart2.xlsx | Bin .../32readwriteBarStackedChart3D1.xlsx | Bin .../templates/32readwriteBubbleChart1.xlsx | Bin .../templates/32readwriteBubbleChart3D1.xlsx | Bin .../32readwriteChartWithImages1.xlsx | Bin .../templates/32readwriteColumnChart1.xlsx | Bin .../templates/32readwriteColumnChart2.xlsx | Bin .../templates/32readwriteColumnChart3.xlsx | Bin .../templates/32readwriteColumnChart3D1.xlsx | Bin .../templates/32readwriteColumnChart4.xlsx | Bin .../32readwriteColumnPercentageChart1.xlsx | Bin .../32readwriteColumnPercentageChart2.xlsx | Bin .../32readwriteColumnPercentageChart3D1.xlsx | Bin .../32readwriteColumnStackedChart1.xlsx | Bin .../32readwriteColumnStackedChart2.xlsx | Bin .../32readwriteColumnStackedChart3D1.xlsx | Bin .../templates/32readwriteDonutChart1.xlsx | Bin .../templates/32readwriteDonutChart2.xlsx | Bin .../templates/32readwriteDonutChart3.xlsx | Bin .../templates/32readwriteDonutChart4.xlsx | Bin .../32readwriteDonutChartExploded1.xlsx | Bin .../32readwriteDonutChartMultiseries1.xlsx | Bin .../templates/32readwriteLineChart1.xlsx | Bin .../templates/32readwriteLineChart2.xlsx | Bin .../templates/32readwriteLineChart3.xlsx | Bin .../templates/32readwriteLineChart3D1.xlsx | Bin .../32readwriteLineChartNoPointMarkers1.xlsx | Bin .../32readwriteLinePercentageChart1.xlsx | Bin .../32readwriteLinePercentageChart2.xlsx | Bin .../32readwriteLineStackedChart1.xlsx | Bin .../32readwriteLineStackedChart2.xlsx | Bin .../templates/32readwritePieChart1.xlsx | Bin .../templates/32readwritePieChart2.xlsx | Bin .../templates/32readwritePieChart3.xlsx | Bin .../templates/32readwritePieChart3D1.xlsx | Bin .../templates/32readwritePieChart4.xlsx | Bin .../32readwritePieChartExploded1.xlsx | Bin .../32readwritePieChartExploded3D1.xlsx | Bin .../templates/32readwriteRadarChart1.xlsx | Bin .../templates/32readwriteRadarChart2.xlsx | Bin .../templates/32readwriteRadarChart3.xlsx | Bin .../templates/32readwriteScatterChart1.xlsx | Bin .../templates/32readwriteScatterChart2.xlsx | Bin .../templates/32readwriteScatterChart3.xlsx | Bin .../templates/32readwriteScatterChart4.xlsx | Bin .../templates/32readwriteScatterChart5.xlsx | Bin .../templates/32readwriteStockChart1.xlsx | Bin .../templates/32readwriteStockChart2.xlsx | Bin .../templates/32readwriteStockChart3.xlsx | Bin .../templates/32readwriteStockChart4.xlsx | Bin .../templates/32readwriteSurfaceChart1.xlsx | Bin .../templates/32readwriteSurfaceChart2.xlsx | Bin .../templates/32readwriteSurfaceChart3.xlsx | Bin .../templates/32readwriteSurfaceChart4.xlsx | Bin .../templates/36writeLineChart1.xlsx | Bin .../templates/43mergeBook1.xlsx | Bin .../templates/43mergeBook2.xlsx | Bin samples/templates/Excel2003XMLTest.xml | 39529 ++++++++++++++++ .../templates}/GnumericTest.gnumeric | Bin .../templates}/OOCalcTest.ods | Bin {Examples => samples/templates}/SylkTest.slk | 0 samples/templates/chartSpreadsheet.php | 90 + samples/templates/largeSpreadsheet.php | 54 + samples/templates/sampleSpreadsheet.php | 358 + src/PhpSpreadsheet/Helper/Sample.php | 185 + src/PhpSpreadsheet/Reader/Excel2003XML.php | 2 +- src/PhpSpreadsheet/Reader/Excel2007.php | 3 +- src/PhpSpreadsheet/Reader/Gnumeric.php | 1 + src/PhpSpreadsheet/Reader/OOCalc.php | 3 + src/PhpSpreadsheet/Settings.php | 4 +- src/PhpSpreadsheet/Writer/HTML.php | 224 +- src/PhpSpreadsheet/Writer/PDF.php | 6 +- tests/PhpSpreadsheetTests/SampleTest.php | 38 + tests/bootstrap.php | 27 +- 291 files changed, 46119 insertions(+), 11125 deletions(-) delete mode 100644 Examples/.gitignore delete mode 100644 Examples/01pharSimple.php delete mode 100644 Examples/01simple-download-ods.php delete mode 100644 Examples/01simple-download-pdf.php delete mode 100644 Examples/01simple-download-xls.php delete mode 100644 Examples/01simple-download-xlsx.php delete mode 100644 Examples/01simple.php delete mode 100644 Examples/01simplePCLZip.php delete mode 100644 Examples/02types.php delete mode 100644 Examples/03formulas.php delete mode 100644 Examples/04printing.php delete mode 100644 Examples/05featuredemo.inc.php delete mode 100644 Examples/05featuredemo.php delete mode 100644 Examples/06largescale-with-cellcaching-sqlite.php delete mode 100644 Examples/06largescale-with-cellcaching-sqlite3.php delete mode 100644 Examples/06largescale-with-cellcaching.php delete mode 100644 Examples/06largescale-xls.php delete mode 100644 Examples/06largescale.php delete mode 100644 Examples/07reader.php delete mode 100644 Examples/07readerPCLZip.php delete mode 100644 Examples/08conditionalformatting.php delete mode 100644 Examples/08conditionalformatting2.php delete mode 100644 Examples/09pagebreaks.php delete mode 100644 Examples/10autofilter-selection-1.php delete mode 100644 Examples/10autofilter-selection-2.php delete mode 100644 Examples/10autofilter-selection-display.php delete mode 100644 Examples/10autofilter.php delete mode 100644 Examples/11documentsecurity-xls.php delete mode 100644 Examples/11documentsecurity.php delete mode 100644 Examples/12cellProtection.php delete mode 100644 Examples/13calculation.php delete mode 100644 Examples/13calculationCyclicFormulae.php delete mode 100644 Examples/14excel5.php delete mode 100644 Examples/15datavalidation-xls.php delete mode 100644 Examples/15datavalidation.php delete mode 100644 Examples/16csv.php delete mode 100644 Examples/17html.php delete mode 100644 Examples/18extendedcalculation.php delete mode 100644 Examples/19namedrange.php delete mode 100644 Examples/20readexcel5.php delete mode 100644 Examples/21pdf.php delete mode 100644 Examples/22heavilyformatted.php delete mode 100644 Examples/23sharedstyles.php delete mode 100644 Examples/24readfilter.php delete mode 100644 Examples/25inmemoryimage.php delete mode 100644 Examples/26utf8.php delete mode 100644 Examples/27imagesexcel5.php delete mode 100644 Examples/28iterator.php delete mode 100644 Examples/29advancedvaluebinder.php delete mode 100644 Examples/30template.php delete mode 100644 Examples/31docproperties_write-xls.php delete mode 100644 Examples/31docproperties_write.php delete mode 100644 Examples/32chartreadwrite.php delete mode 100644 Examples/33chartcreate-area.php delete mode 100644 Examples/33chartcreate-bar-stacked.php delete mode 100644 Examples/33chartcreate-bar.php delete mode 100644 Examples/33chartcreate-column-2.php delete mode 100644 Examples/33chartcreate-column.php delete mode 100644 Examples/33chartcreate-composite.php delete mode 100644 Examples/33chartcreate-line.php delete mode 100644 Examples/33chartcreate-multiple-charts.php delete mode 100644 Examples/33chartcreate-pie.php delete mode 100644 Examples/33chartcreate-radar.php delete mode 100644 Examples/33chartcreate-scatter.php delete mode 100644 Examples/33chartcreate-stock.php delete mode 100644 Examples/34chartupdate.php delete mode 100644 Examples/35chartrender.php delete mode 100644 Examples/36chartreadwriteHTML.php delete mode 100644 Examples/36chartreadwritePDF.php delete mode 100644 Examples/37page_layout_view.php delete mode 100644 Examples/38cloneWorksheet.php delete mode 100644 Examples/39dropdown.php delete mode 100644 Examples/40duplicateStyle.php delete mode 100644 Examples/41password.php delete mode 100644 Examples/42richText.php delete mode 100644 Examples/43mergeWorkbooks.php delete mode 100644 Examples/44worksheetInfo.php delete mode 100644 Examples/Excel2003XMLReader.php delete mode 100644 Examples/Excel2003XMLTest.xml delete mode 100644 Examples/GnumericReader.php delete mode 100644 Examples/OOCalcReader.php delete mode 100644 Examples/OOCalcReaderPCLZip.php delete mode 100644 Examples/Quadratic.php delete mode 100644 Examples/Quadratic.xlsx delete mode 100644 Examples/Quadratic2.php delete mode 100644 Examples/SylkReader.php delete mode 100644 Examples/XMLReader.php delete mode 100644 Examples/XMLTest.xml delete mode 100644 Examples/runall.php create mode 100644 samples/01_Simple.php create mode 100644 samples/01_Simple_PCLZip.php create mode 100644 samples/01_Simple_download_ods.php create mode 100644 samples/01_Simple_download_pdf.php create mode 100644 samples/01_Simple_download_xls.php create mode 100644 samples/01_Simple_download_xlsx.php create mode 100644 samples/02_Types.php create mode 100644 samples/03_Formulas.php create mode 100644 samples/04_Printing.php create mode 100644 samples/05_Feature_demo.php create mode 100644 samples/06_Largescale.php create mode 100644 samples/06_Largescale_with_cellcaching.php create mode 100644 samples/06_Largescale_with_cellcaching_sqlite.php create mode 100644 samples/06_Largescale_with_cellcaching_sqlite3.php create mode 100644 samples/07_Reader.php create mode 100644 samples/07_Reader_PCLZip.php create mode 100644 samples/08_Conditional_formatting.php create mode 100644 samples/08_Conditional_formatting_2.php create mode 100644 samples/09_Pagebreaks.php create mode 100644 samples/10_Autofilter.php create mode 100644 samples/10_Autofilter_selection_1.php create mode 100644 samples/10_Autofilter_selection_2.php create mode 100644 samples/10_Autofilter_selection_display.php create mode 100644 samples/11_Documentsecurity.php create mode 100644 samples/12_CellProtection.php create mode 100644 samples/13_Calculation.php create mode 100644 samples/13_CalculationCyclicFormulae.php create mode 100644 samples/14_Excel5.php create mode 100644 samples/15_Datavalidation.php create mode 100644 samples/16_Csv.php create mode 100644 samples/17_Html.php create mode 100644 samples/18_Extendedcalculation.php create mode 100644 samples/19_Namedrange.php create mode 100644 samples/20_Read_Excel2003XML.php create mode 100644 samples/20_Read_Excel5.php create mode 100644 samples/20_Read_Gnumeric.php create mode 100644 samples/20_Read_OOCalc.php create mode 100644 samples/20_Read_OOCalc_with_PCLZip.php create mode 100644 samples/20_Read_Sylk.php create mode 100644 samples/21_Pdf.php create mode 100644 samples/22_Heavily_formatted.php create mode 100644 samples/23_Sharedstyles.php create mode 100644 samples/24_Readfilter.php create mode 100644 samples/25_In_memory_image.php create mode 100644 samples/26_Utf8.php create mode 100644 samples/27_Images_excel5.php create mode 100644 samples/28_Iterator.php create mode 100644 samples/29_Advanced_value_binder.php create mode 100644 samples/30_Template.php create mode 100644 samples/31_Document_properties_write.php create mode 100644 samples/31_Document_properties_write_xls.php create mode 100644 samples/32_Chart_read_write.php create mode 100644 samples/32_Chart_read_write_HTML.php create mode 100644 samples/32_Chart_read_write_PDF.php create mode 100644 samples/33_Chart_create_area.php create mode 100644 samples/33_Chart_create_bar.php create mode 100644 samples/33_Chart_create_bar_stacked.php create mode 100644 samples/33_Chart_create_column.php create mode 100644 samples/33_Chart_create_column_2.php create mode 100644 samples/33_Chart_create_composite.php create mode 100644 samples/33_Chart_create_line.php create mode 100644 samples/33_Chart_create_multiple_charts.php create mode 100644 samples/33_Chart_create_pie.php create mode 100644 samples/33_Chart_create_radar.php create mode 100644 samples/33_Chart_create_scatter.php create mode 100644 samples/33_Chart_create_stock.php create mode 100644 samples/34_Chart_update.php create mode 100644 samples/35_Chart_render.php create mode 100644 samples/37_Page_layout_view.php create mode 100644 samples/38_Clone_worksheet.php create mode 100644 samples/39_Dropdown.php create mode 100644 samples/40_Duplicate_style.php create mode 100644 samples/41_Password.php create mode 100644 samples/42_RichText.php create mode 100644 samples/43_Merge_workbooks.php create mode 100644 samples/44_Worksheet_info.php create mode 100644 samples/45_Quadratic_equation_solver.php create mode 100644 samples/Header.php create mode 100644 samples/bootstrap/css/bootstrap.min.css create mode 100644 samples/bootstrap/css/font-awesome.min.css create mode 100644 samples/bootstrap/css/phpspreadsheet.css create mode 100644 samples/bootstrap/fonts/FontAwesome.otf create mode 100644 samples/bootstrap/fonts/fontawesome-webfont.eot create mode 100644 samples/bootstrap/fonts/fontawesome-webfont.svg create mode 100644 samples/bootstrap/fonts/fontawesome-webfont.ttf create mode 100644 samples/bootstrap/fonts/fontawesome-webfont.woff create mode 100644 samples/bootstrap/fonts/fontawesome-webfont.woff2 create mode 100644 samples/bootstrap/js/bootstrap.min.js create mode 100644 samples/bootstrap/js/jquery.min.js rename {Examples => samples}/data/continents/Africa.txt (100%) rename {Examples => samples}/data/continents/Asia.txt (100%) rename {Examples => samples}/data/continents/Europe.txt (100%) rename {Examples => samples}/data/continents/North America.txt (100%) rename {Examples => samples}/data/continents/Oceania.txt (100%) rename {Examples => samples}/data/continents/South America.txt (100%) rename {Examples => samples}/images/PhpSpreadsheet_logo.gif (100%) rename {Examples => samples}/images/officelogo.jpg (100%) rename {Examples => samples}/images/paid.png (100%) rename {Examples => samples}/images/termsconditions.jpg (100%) create mode 100644 samples/index.php rename {Examples => samples}/templates/26template.xlsx (100%) rename {Examples => samples}/templates/27template.xls (100%) rename {Examples => samples}/templates/28iterators.xlsx (100%) rename {Examples => samples}/templates/30template.xls (100%) rename {Examples => samples}/templates/31docproperties.xls (100%) rename {Examples => samples}/templates/31docproperties.xlsx (100%) rename {Examples => samples}/templates/32chartreadwrite.xlsx (100%) rename {Examples => samples}/templates/32complexChartreadwrite.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaPercentageChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaPercentageChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaPercentageChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaStackedChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaStackedChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteAreaStackedChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarPercentageChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarPercentageChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarPercentageChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarStackedChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarStackedChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteBarStackedChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBubbleChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteBubbleChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteChartWithImages1.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnChart4.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnPercentageChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnPercentageChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnPercentageChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnStackedChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnStackedChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteColumnStackedChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteDonutChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteDonutChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteDonutChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteDonutChart4.xlsx (100%) rename {Examples => samples}/templates/32readwriteDonutChartExploded1.xlsx (100%) rename {Examples => samples}/templates/32readwriteDonutChartMultiseries1.xlsx (100%) rename {Examples => samples}/templates/32readwriteLineChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteLineChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteLineChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteLineChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteLineChartNoPointMarkers1.xlsx (100%) rename {Examples => samples}/templates/32readwriteLinePercentageChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteLinePercentageChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteLineStackedChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteLineStackedChart2.xlsx (100%) rename {Examples => samples}/templates/32readwritePieChart1.xlsx (100%) rename {Examples => samples}/templates/32readwritePieChart2.xlsx (100%) rename {Examples => samples}/templates/32readwritePieChart3.xlsx (100%) rename {Examples => samples}/templates/32readwritePieChart3D1.xlsx (100%) rename {Examples => samples}/templates/32readwritePieChart4.xlsx (100%) rename {Examples => samples}/templates/32readwritePieChartExploded1.xlsx (100%) rename {Examples => samples}/templates/32readwritePieChartExploded3D1.xlsx (100%) rename {Examples => samples}/templates/32readwriteRadarChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteRadarChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteRadarChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteScatterChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteScatterChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteScatterChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteScatterChart4.xlsx (100%) rename {Examples => samples}/templates/32readwriteScatterChart5.xlsx (100%) rename {Examples => samples}/templates/32readwriteStockChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteStockChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteStockChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteStockChart4.xlsx (100%) rename {Examples => samples}/templates/32readwriteSurfaceChart1.xlsx (100%) rename {Examples => samples}/templates/32readwriteSurfaceChart2.xlsx (100%) rename {Examples => samples}/templates/32readwriteSurfaceChart3.xlsx (100%) rename {Examples => samples}/templates/32readwriteSurfaceChart4.xlsx (100%) rename {Examples => samples}/templates/36writeLineChart1.xlsx (100%) rename {Examples => samples}/templates/43mergeBook1.xlsx (100%) rename {Examples => samples}/templates/43mergeBook2.xlsx (100%) create mode 100644 samples/templates/Excel2003XMLTest.xml rename {Examples => samples/templates}/GnumericTest.gnumeric (100%) rename {Examples => samples/templates}/OOCalcTest.ods (100%) rename {Examples => samples/templates}/SylkTest.slk (100%) create mode 100644 samples/templates/chartSpreadsheet.php create mode 100644 samples/templates/largeSpreadsheet.php create mode 100644 samples/templates/sampleSpreadsheet.php create mode 100644 src/PhpSpreadsheet/Helper/Sample.php create mode 100644 tests/PhpSpreadsheetTests/SampleTest.php diff --git a/.php_cs b/.php_cs index ed5a0ebb..2278ffb0 100644 --- a/.php_cs +++ b/.php_cs @@ -2,6 +2,7 @@ $finder = Symfony\CS\Finder\DefaultFinder::create() ->exclude('vendor') + ->in('samples') ->in('src') ->in('tests'); diff --git a/.travis.yml b/.travis.yml index 67bda5e9..5bf19df4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ before_script: script: ## PHP_CodeSniffer - - ./vendor/bin/phpcs --report-width=200 --report-summary --report-full src/ tests/ --standard=PSR2 -n + - ./vendor/bin/phpcs --report-width=200 --report-summary --report-full samples/ src/ tests/ --standard=PSR2 -n ## PHP-CS-Fixer - ./vendor/bin/php-cs-fixer fix --diff --verbose ## PHPUnit diff --git a/Examples/.gitignore b/Examples/.gitignore deleted file mode 100644 index 9a415a71..00000000 --- a/Examples/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.xls -*.xlsx -*.csv -*.jpg -*.pdf -*.htm -*.html -*.log -!.gitignore -!data/** -!images/** -!templates/** diff --git a/Examples/01pharSimple.php b/Examples/01pharSimple.php deleted file mode 100644 index 04a0a4fd..00000000 --- a/Examples/01pharSimple.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once '../Build/PHPExcel.phar'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("PHPExcel Test Document") - ->setSubject("PHPExcel Test Document") - ->setDescription("Test document for PHPExcel, generated using PHP classes.") - ->setKeywords("office PHPExcel php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Simple'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel5 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/01simple-download-ods.php b/Examples/01simple-download-ods.php deleted file mode 100644 index 396ca5bd..00000000 --- a/Examples/01simple-download-ods.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2016 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -if (PHP_SAPI == 'cli') - die('This example should only be run from a Web Browser'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PhpSpreadsheet object -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -$objPhpSpreadsheet->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - -// Rename worksheet -$objPhpSpreadsheet->getActiveSheet()->setTitle('Simple'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Redirect output to a client’s web browser (OpenDocument) -header('Content-Type: application/vnd.oasis.opendocument.spreadsheet'); -header('Content-Disposition: attachment;filename="01simple.ods"'); -header('Cache-Control: max-age=0'); -// If you're serving to IE 9, then the following may be needed -header('Cache-Control: max-age=1'); - -// If you're serving to IE over SSL, then the following may be needed -header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past -header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified -header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 -header ('Pragma: public'); // HTTP/1.0 - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'OpenDocument'); -$objWriter->save('php://output'); -exit; diff --git a/Examples/01simple-download-pdf.php b/Examples/01simple-download-pdf.php deleted file mode 100644 index b65ae75e..00000000 --- a/Examples/01simple-download-pdf.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2016 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -if (PHP_SAPI == 'cli') - die('This example should only be run from a Web Browser'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Change these values to select the Rendering library that you wish to use -// and its directory location on your server -//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; -$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; -//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; -//$rendererLibrary = 'tcPDF5.9'; -$rendererLibrary = 'mPDF5.4'; -//$rendererLibrary = 'domPDF0.6.0beta3'; -$rendererLibraryPath = dirname(__FILE__).'/../../../libraries/PDF/' . $rendererLibrary; - - -// Create new PhpSpreadsheet object -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -$objPhpSpreadsheet->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("PDF Test Document") - ->setSubject("PDF Test Document") - ->setDescription("Test document for PDF, generated using PHP classes.") - ->setKeywords("pdf php") - ->setCategory("Test result file"); - - -// Add some data -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - -// Rename worksheet -$objPhpSpreadsheet->getActiveSheet()->setTitle('Simple'); -$objPhpSpreadsheet->getActiveSheet()->setShowGridLines(false); - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -if (!PhpSpreadsheet\Settings::setPdfRenderer( - $rendererName, - $rendererLibraryPath - )) { - die( - 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . - '<br />' . - 'at the top of this script as appropriate for your directory structure' - ); -} - - -// Redirect output to a client’s web browser (PDF) -header('Content-Type: application/pdf'); -header('Content-Disposition: attachment;filename="01simple.pdf"'); -header('Cache-Control: max-age=0'); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'PDF'); -$objWriter->save('php://output'); -exit; diff --git a/Examples/01simple-download-xls.php b/Examples/01simple-download-xls.php deleted file mode 100644 index c1558366..00000000 --- a/Examples/01simple-download-xls.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2016 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -if (PHP_SAPI == 'cli') - die('This example should only be run from a Web Browser'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PhpSpreadsheet object -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -$objPhpSpreadsheet->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - -// Rename worksheet -$objPhpSpreadsheet->getActiveSheet()->setTitle('Simple'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Redirect output to a client’s web browser (Excel5) -header('Content-Type: application/vnd.ms-excel'); -header('Content-Disposition: attachment;filename="01simple.xls"'); -header('Cache-Control: max-age=0'); -// If you're serving to IE 9, then the following may be needed -header('Cache-Control: max-age=1'); - -// If you're serving to IE over SSL, then the following may be needed -header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past -header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified -header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 -header ('Pragma: public'); // HTTP/1.0 - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel5'); -$objWriter->save('php://output'); -exit; diff --git a/Examples/01simple-download-xlsx.php b/Examples/01simple-download-xlsx.php deleted file mode 100644 index efc8ca69..00000000 --- a/Examples/01simple-download-xlsx.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2016 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -if (PHP_SAPI == 'cli') - die('This example should only be run from a Web Browser'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PhpSpreadsheet object -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -$objPhpSpreadsheet->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - -// Rename worksheet -$objPhpSpreadsheet->getActiveSheet()->setTitle('Simple'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Redirect output to a client’s web browser (Excel2007) -header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); -header('Content-Disposition: attachment;filename="01simple.xlsx"'); -header('Cache-Control: max-age=0'); -// If you're serving to IE 9, then the following may be needed -header('Cache-Control: max-age=1'); - -// If you're serving to IE over SSL, then the following may be needed -header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past -header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified -header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1 -header ('Pragma: public'); // HTTP/1.0 - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel2007'); -$objWriter->save('php://output'); -exit; diff --git a/Examples/01simple.php b/Examples/01simple.php deleted file mode 100644 index 4ccf8785..00000000 --- a/Examples/01simple.php +++ /dev/null @@ -1,140 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2016 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new Spreadsheet object -echo date('H:i:s') , " Create new Spreadsheet object" , EOL; -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPhpSpreadsheet->getProperties() - ->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("PhpSpreadsheet Test Document") - ->setSubject("PhpSpreadsheet Test Document") - ->setDescription("Test document for PhpSpreadsheet, generated using PHP classes.") - ->setKeywords("office PhpSpreadsheet php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A8',"Hello\nWorld"); -$objPhpSpreadsheet->getActiveSheet() - ->getRowDimension(8) - ->setRowHeight(-1); -$objPhpSpreadsheet->getActiveSheet() - ->getStyle('A8') - ->getAlignment() - ->setWrapText(true); - - -$value = "-ValueA\n-Value B\n-Value C"; -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A10', $value); -$objPhpSpreadsheet->getActiveSheet() - ->getRowDimension(10) - ->setRowHeight(-1); -$objPhpSpreadsheet->getActiveSheet() - ->getStyle('A10') - ->getAlignment() - ->setWrapText(true); -$objPhpSpreadsheet->getActiveSheet() - ->getStyle('A10') - ->setQuotePrefix(true); - - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPhpSpreadsheet->getActiveSheet() - ->setTitle('Simple'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/01simplePCLZip.php b/Examples/01simplePCLZip.php deleted file mode 100644 index 09915d4c..00000000 --- a/Examples/01simplePCLZip.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2016 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PhpSpreadsheet object -echo date('H:i:s') , " Create new PhpSpreadsheet object" , EOL; -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPhpSpreadsheet->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("PhpSpreadsheet Test Document") - ->setSubject("PhpSpreadsheet Test Document") - ->setDescription("Test document for PhpSpreadsheet, generated using PHP classes.") - ->setKeywords("office PhpSpreadsheet php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPhpSpreadsheet->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - - -$objPhpSpreadsheet->getActiveSheet()->setCellValue('A8',"Hello\nWorld"); -$objPhpSpreadsheet->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); -$objPhpSpreadsheet->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); - - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPhpSpreadsheet->getActiveSheet()->setTitle('Simple'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -// Use PCLZip rather than ZipArchive to create the Excel2007 OfficeOpenXML file -PhpSpreadsheet\Settings::setZipClass(PhpSpreadsheet\Settings::PCLZIP); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/02types.php b/Examples/02types.php deleted file mode 100644 index ca16d668..00000000 --- a/Examples/02types.php +++ /dev/null @@ -1,229 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2016 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2016 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PhpSpreadsheet object -echo date('H:i:s') , " Create new PhpSpreadsheet object" , EOL; -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPhpSpreadsheet->getProperties() - ->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - -// Set default font -echo date('H:i:s') , " Set default font" , EOL; -$objPhpSpreadsheet->getDefaultStyle() - ->getFont() - ->setName('Arial') - ->setSize(10); - -// Add some data, resembling some different data types -echo date('H:i:s') , " Add some data" , EOL; -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A1', 'String') - ->setCellValue('B1', 'Simple') - ->setCellValue('C1', 'PhpSpreadsheet'); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A2', 'String') - ->setCellValue('B2', 'Symbols') - ->setCellValue('C2', '!+&=()~§±æþ'); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A3', 'String') - ->setCellValue('B3', 'UTF-8') - ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов'); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A4', 'Number') - ->setCellValue('B4', 'Integer') - ->setCellValue('C4', 12); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A5', 'Number') - ->setCellValue('B5', 'Float') - ->setCellValue('C5', 34.56); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A6', 'Number') - ->setCellValue('B6', 'Negative') - ->setCellValue('C6', -7.89); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A7', 'Boolean') - ->setCellValue('B7', 'True') - ->setCellValue('C7', true); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A8', 'Boolean') - ->setCellValue('B8', 'False') - ->setCellValue('C8', false); - -$dateTimeNow = time(); -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A9', 'Date/Time') - ->setCellValue('B9', 'Date') - ->setCellValue('C9', \PhpSpreadsheet\Shared\Date::PHPToExcel( $dateTimeNow )); -$objPhpSpreadsheet->getActiveSheet() - ->getStyle('C9') - ->getNumberFormat() - ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A10', 'Date/Time') - ->setCellValue('B10', 'Time') - ->setCellValue('C10', \PhpSpreadsheet\Shared\Date::PHPToExcel( $dateTimeNow )); -$objPhpSpreadsheet->getActiveSheet() - ->getStyle('C10') - ->getNumberFormat() - ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A11', 'Date/Time') - ->setCellValue('B11', 'Date and Time') - ->setCellValue('C11', \PhpSpreadsheet\Shared\Date::PHPToExcel( $dateTimeNow )); -$objPhpSpreadsheet->getActiveSheet() - ->getStyle('C11') - ->getNumberFormat() - ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A12', 'NULL') - ->setCellValue('C12', NULL); - -$objRichText = new \PhpSpreadsheet\RichText(); -$objRichText->createText('你好 '); - -$objPayable = $objRichText->createTextRun('你 好 吗?'); -$objPayable->getFont()->setBold(true); -$objPayable->getFont()->setItalic(true); -$objPayable->getFont()->setColor( new \PhpSpreadsheet\Style\Color( \PhpSpreadsheet\Style\Color::COLOR_DARKGREEN ) ); - -$objRichText->createText(', unless specified otherwise on the invoice.'); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A13', 'Rich Text') - ->setCellValue('C13', $objRichText); - - -$objRichText2 = new \PhpSpreadsheet\RichText(); -$objRichText2->createText("black text\n"); - -$objRed = $objRichText2->createTextRun("red text"); -$objRed->getFont()->setColor( new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_RED ) ); - -$objPhpSpreadsheet->getActiveSheet() - ->getCell("C14") - ->setValue($objRichText2); -$objPhpSpreadsheet->getActiveSheet() - ->getStyle("C14") - ->getAlignment()->setWrapText(true); - - -$objPhpSpreadsheet->getActiveSheet()->setCellValue('A17', 'Hyperlink'); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('C17', 'PhpSpreadsheet Web Site'); -$objPhpSpreadsheet->getActiveSheet() - ->getCell('C17') - ->getHyperlink() - ->setUrl('https://github.com/PHPOffice/PhpSpreadsheet') - ->setTooltip('Navigate to PhpSpreadsheet website'); - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('C18', '=HYPERLINK("mailto:abc@def.com","abc@def.com")'); - - -$objPhpSpreadsheet->getActiveSheet() - ->getColumnDimension('B') - ->setAutoSize(true); -$objPhpSpreadsheet->getActiveSheet() - ->getColumnDimension('C') - ->setAutoSize(true); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPhpSpreadsheet->getActiveSheet()->setTitle('Datatypes'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 5 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done testing file" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/03formulas.php b/Examples/03formulas.php deleted file mode 100644 index 89283e59..00000000 --- a/Examples/03formulas.php +++ /dev/null @@ -1,175 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2015 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @package PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2015 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PhpSpreadsheet object -echo date('H:i:s') , " Create new PhpSpreadsheet object" , EOL; -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPhpSpreadsheet->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data, we will use some formulas here -echo date('H:i:s') , " Add some data" , EOL; -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A5', 'Sum:'); - -$objPhpSpreadsheet->getActiveSheet()->setCellValue('B1', 'Range #1') - ->setCellValue('B2', 3) - ->setCellValue('B3', 7) - ->setCellValue('B4', 13) - ->setCellValue('B5', '=SUM(B2:B4)'); -echo date('H:i:s') , " Sum of Range #1 is " , -$objPhpSpreadsheet->getActiveSheet() - ->getCell('B5') - ->getCalculatedValue() , EOL; - -$objPhpSpreadsheet->getActiveSheet()->setCellValue('C1', 'Range #2') - ->setCellValue('C2', 5) - ->setCellValue('C3', 11) - ->setCellValue('C4', 17) - ->setCellValue('C5', '=SUM(C2:C4)'); -echo date('H:i:s') , " Sum of Range #2 is " , -$objPhpSpreadsheet->getActiveSheet() - ->getCell('C5') - ->getCalculatedValue() , EOL; - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A7', 'Total of both ranges:'); -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('B7', '=SUM(B5:C5)'); -echo date('H:i:s') , " Sum of both Ranges is " , -$objPhpSpreadsheet->getActiveSheet() - ->getCell('B7') - ->getCalculatedValue() , EOL; - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A8', 'Minimum of both ranges:'); -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('B8', '=MIN(B2:C4)'); -echo date('H:i:s') , " Minimum value in either Range is " , -$objPhpSpreadsheet->getActiveSheet() - ->getCell('B8') - ->getCalculatedValue() , EOL; - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A9', 'Maximum of both ranges:'); -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('B9', '=MAX(B2:C4)'); -echo date('H:i:s') , " Maximum value in either Range is " , -$objPhpSpreadsheet->getActiveSheet() - ->getCell('B9') - ->getCalculatedValue() , EOL; - -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('A10', 'Average of both ranges:'); -$objPhpSpreadsheet->getActiveSheet() - ->setCellValue('B10', '=AVERAGE(B2:C4)'); -echo date('H:i:s') , " Average value of both Ranges is " , -$objPhpSpreadsheet->getActiveSheet() - ->getCell('B10')->getCalculatedValue() , EOL; - - -$objPhpSpreadsheet->getActiveSheet() - ->getColumnDimension('A') - ->setAutoSize(true); - - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPhpSpreadsheet->getActiveSheet() - ->setTitle('Formulas'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel2007'); - -// -// If we set Pre Calculated Formulas to true then PhpSpreadsheet will calculate all formulae in the -// workbook before saving. This adds time and memory overhead, and can cause some problems with formulae -// using functions or features (such as array formulae) that aren't yet supported by the calculation engine -// If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to -// open the file) will need to recalculate values itself to guarantee that the correct results are available. -// -//$objWriter->setPreCalculateFormulas(true); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/04printing.php b/Examples/04printing.php deleted file mode 100644 index 79edf444..00000000 --- a/Examples/04printing.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php -/** - * PhpSpreadsheet - * - * Copyright (c) 2006 - 2015 PhpSpreadsheet - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PhpSpreadsheet - * @package PhpSpreadsheet - * @copyright Copyright (c) 2006 - 2015 PhpSpreadsheet (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PhpSpreadsheet */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PhpSpreadsheet object -echo date('H:i:s') , " Create new PhpSpreadsheet object" , EOL; -$objPhpSpreadsheet = new \PhpSpreadsheet\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPhpSpreadsheet->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data, we will use printing features -echo date('H:i:s') , " Add some data" , EOL; -for ($i = 1; $i < 200; $i++) { - $objPhpSpreadsheet->getActiveSheet()->setCellValue('A' . $i, $i); - $objPhpSpreadsheet->getActiveSheet()->setCellValue('B' . $i, 'Test value'); -} - -// Set header and footer. When no different headers for odd/even are used, odd header is assumed. -echo date('H:i:s') , " Set header/footer" , EOL; -$objPhpSpreadsheet->getActiveSheet() - ->getHeaderFooter() - ->setOddHeader('&L&G&C&HPlease treat this document as confidential!'); -$objPhpSpreadsheet->getActiveSheet() - ->getHeaderFooter() - ->setOddFooter('&L&B' . $objPhpSpreadsheet->getProperties()->getTitle() . '&RPage &P of &N'); - -// Add a drawing to the header -echo date('H:i:s') , " Add a drawing to the header" , EOL; -$objDrawing = new \PhpSpreadsheet\Worksheet\HeaderFooterDrawing(); -$objDrawing->setName('PhpSpreadsheet logo'); -$objDrawing->setPath('./images/PhpSpreadsheet_logo.gif'); -$objDrawing->setHeight(36); -$objPhpSpreadsheet->getActiveSheet() - ->getHeaderFooter() - ->addImage($objDrawing, \PhpSpreadsheet\Worksheet\HeaderFooter::IMAGE_HEADER_LEFT); - -// Set page orientation and size -echo date('H:i:s') , " Set page orientation and size" , EOL; -$objPhpSpreadsheet->getActiveSheet() - ->getPageSetup() - ->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); -$objPhpSpreadsheet->getActiveSheet() - ->getPageSetup() - ->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPhpSpreadsheet->getActiveSheet()->setTitle('Printing'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPhpSpreadsheet->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PhpSpreadsheet\IOFactory::createWriter($objPhpSpreadsheet, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/05featuredemo.inc.php b/Examples/05featuredemo.inc.php deleted file mode 100644 index 547dd184..00000000 --- a/Examples/05featuredemo.inc.php +++ /dev/null @@ -1,394 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet, representing sales data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Invoice'); -$objPHPExcel->getActiveSheet()->setCellValue('D1', \PHPExcel\Shared\Date::PHPToExcel( gmmktime(0,0,0,date('m'),date('d'),date('Y')) )); -$objPHPExcel->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_DATE_XLSX15); -$objPHPExcel->getActiveSheet()->setCellValue('E1', '#12566'); - -$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Product Id'); -$objPHPExcel->getActiveSheet()->setCellValue('B3', 'Description'); -$objPHPExcel->getActiveSheet()->setCellValue('C3', 'Price'); -$objPHPExcel->getActiveSheet()->setCellValue('D3', 'Amount'); -$objPHPExcel->getActiveSheet()->setCellValue('E3', 'Total'); - -$objPHPExcel->getActiveSheet()->setCellValue('A4', '1001'); -$objPHPExcel->getActiveSheet()->setCellValue('B4', 'PHP for dummies'); -$objPHPExcel->getActiveSheet()->setCellValue('C4', '20'); -$objPHPExcel->getActiveSheet()->setCellValue('D4', '1'); -$objPHPExcel->getActiveSheet()->setCellValue('E4', '=IF(D4<>"",C4*D4,"")'); - -$objPHPExcel->getActiveSheet()->setCellValue('A5', '1012'); -$objPHPExcel->getActiveSheet()->setCellValue('B5', 'OpenXML for dummies'); -$objPHPExcel->getActiveSheet()->setCellValue('C5', '22'); -$objPHPExcel->getActiveSheet()->setCellValue('D5', '2'); -$objPHPExcel->getActiveSheet()->setCellValue('E5', '=IF(D5<>"",C5*D5,"")'); - -$objPHPExcel->getActiveSheet()->setCellValue('E6', '=IF(D6<>"",C6*D6,"")'); -$objPHPExcel->getActiveSheet()->setCellValue('E7', '=IF(D7<>"",C7*D7,"")'); -$objPHPExcel->getActiveSheet()->setCellValue('E8', '=IF(D8<>"",C8*D8,"")'); -$objPHPExcel->getActiveSheet()->setCellValue('E9', '=IF(D9<>"",C9*D9,"")'); - -$objPHPExcel->getActiveSheet()->setCellValue('D11', 'Total excl.:'); -$objPHPExcel->getActiveSheet()->setCellValue('E11', '=SUM(E4:E9)'); - -$objPHPExcel->getActiveSheet()->setCellValue('D12', 'VAT:'); -$objPHPExcel->getActiveSheet()->setCellValue('E12', '=E11*0.21'); - -$objPHPExcel->getActiveSheet()->setCellValue('D13', 'Total incl.:'); -$objPHPExcel->getActiveSheet()->setCellValue('E13', '=E11+E12'); - -// Add comment -echo date('H:i:s') , " Add comments" , EOL; - -$objPHPExcel->getActiveSheet()->getComment('E11')->setAuthor('PHPExcel'); -$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('PHPExcel:'); -$objCommentRichText->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n"); -$objPHPExcel->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.'); - -$objPHPExcel->getActiveSheet()->getComment('E12')->setAuthor('PHPExcel'); -$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('PHPExcel:'); -$objCommentRichText->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun("\r\n"); -$objPHPExcel->getActiveSheet()->getComment('E12')->getText()->createTextRun('Total amount of VAT on the current invoice.'); - -$objPHPExcel->getActiveSheet()->getComment('E13')->setAuthor('PHPExcel'); -$objCommentRichText = $objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('PHPExcel:'); -$objCommentRichText->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun("\r\n"); -$objPHPExcel->getActiveSheet()->getComment('E13')->getText()->createTextRun('Total amount on the current invoice, including VAT.'); -$objPHPExcel->getActiveSheet()->getComment('E13')->setWidth('100pt'); -$objPHPExcel->getActiveSheet()->getComment('E13')->setHeight('100pt'); -$objPHPExcel->getActiveSheet()->getComment('E13')->setMarginLeft('150pt'); -$objPHPExcel->getActiveSheet()->getComment('E13')->getFillColor()->setRGB('EEEEEE'); - - -// Add rich-text string -echo date('H:i:s') , " Add rich-text string" , EOL; -$objRichText = new \PHPExcel\RichText(); -$objRichText->createText('This invoice is '); - -$objPayable = $objRichText->createTextRun('payable within thirty days after the end of the month'); -$objPayable->getFont()->setBold(true); -$objPayable->getFont()->setItalic(true); -$objPayable->getFont()->setColor(new \PHPExcel\Style\Color(\PHPExcel\Style\Color::COLOR_DARKGREEN)); - -$objRichText->createText(', unless specified otherwise on the invoice.'); - -$objPHPExcel->getActiveSheet()->getCell('A18')->setValue($objRichText); - -// Merge cells -echo date('H:i:s') , " Merge cells" , EOL; -$objPHPExcel->getActiveSheet()->mergeCells('A18:E22'); -$objPHPExcel->getActiveSheet()->mergeCells('A28:B28'); // Just to test... -$objPHPExcel->getActiveSheet()->unmergeCells('A28:B28'); // Just to test... - -// Protect cells -echo date('H:i:s') , " Protect cells" , EOL; -$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection! -$objPHPExcel->getActiveSheet()->protectCells('A3:E13', 'PHPExcel'); - -// Set cell number formats -echo date('H:i:s') , " Set cell number formats" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); - -// Set column widths -echo date('H:i:s') , " Set column widths" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12); -$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(12); - -// Set fonts -echo date('H:i:s') , " Set fonts" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara'); -$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(20); -$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(\PHPExcel\Style\Font::UNDERLINE_SINGLE); -$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_WHITE); - -$objPHPExcel->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_WHITE); -$objPHPExcel->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_WHITE); - -$objPHPExcel->getActiveSheet()->getStyle('D13')->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getStyle('E13')->getFont()->setBold(true); - -// Set alignments -echo date('H:i:s') , " Set alignments" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(\PHPExcel\Style\Alignment::HORIZONTAL_RIGHT); -$objPHPExcel->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(\PHPExcel\Style\Alignment::HORIZONTAL_RIGHT); -$objPHPExcel->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(\PHPExcel\Style\Alignment::HORIZONTAL_RIGHT); - -$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(\PHPExcel\Style\Alignment::HORIZONTAL_JUSTIFY); -$objPHPExcel->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(\PHPExcel\Style\Alignment::VERTICAL_CENTER); - -$objPHPExcel->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true); - -// Set thin black border outline around column -echo date('H:i:s') , " Set thin black border outline around column" , EOL; -$styleThinBlackBorderOutline = array( - 'borders' => array( - 'outline' => array( - 'style' => \PHPExcel\Style\Border::BORDER_THIN, - 'color' => array('argb' => 'FF000000'), - ), - ), -); -$objPHPExcel->getActiveSheet()->getStyle('A4:E10')->applyFromArray($styleThinBlackBorderOutline); - - -// Set thick brown border outline around "Total" -echo date('H:i:s') , " Set thick brown border outline around Total" , EOL; -$styleThickBrownBorderOutline = array( - 'borders' => array( - 'outline' => array( - 'style' => \PHPExcel\Style\Border::BORDER_THICK, - 'color' => array('argb' => 'FF993300'), - ), - ), -); -$objPHPExcel->getActiveSheet()->getStyle('D13:E13')->applyFromArray($styleThickBrownBorderOutline); - -// Set fills -echo date('H:i:s') , " Set fills" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(\PHPExcel\Style\Fill::FILL_SOLID); -$objPHPExcel->getActiveSheet()->getStyle('A1:E1')->getFill()->getStartColor()->setARGB('FF808080'); - -// Set style for header row using alternative method -echo date('H:i:s') , " Set style for header row using alternative method" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('A3:E3')->applyFromArray( - array( - 'font' => array( - 'bold' => true - ), - 'alignment' => array( - 'horizontal' => \PHPExcel\Style\Alignment::HORIZONTAL_RIGHT, - ), - 'borders' => array( - 'top' => array( - 'style' => \PHPExcel\Style\Border::BORDER_THIN - ) - ), - 'fill' => array( - 'type' => \PHPExcel\Style\Fill::FILL_GRADIENT_LINEAR, - 'rotation' => 90, - 'startcolor' => array( - 'argb' => 'FFA0A0A0' - ), - 'endcolor' => array( - 'argb' => 'FFFFFFFF' - ) - ) - ) -); - -$objPHPExcel->getActiveSheet()->getStyle('A3')->applyFromArray( - array( - 'alignment' => array( - 'horizontal' => \PHPExcel\Style\Alignment::HORIZONTAL_LEFT, - ), - 'borders' => array( - 'left' => array( - 'style' => \PHPExcel\Style\Border::BORDER_THIN - ) - ) - ) -); - -$objPHPExcel->getActiveSheet()->getStyle('B3')->applyFromArray( - array( - 'alignment' => array( - 'horizontal' => \PHPExcel\Style\Alignment::HORIZONTAL_LEFT, - ) - ) -); - -$objPHPExcel->getActiveSheet()->getStyle('E3')->applyFromArray( - array( - 'borders' => array( - 'right' => array( - 'style' => \PHPExcel\Style\Border::BORDER_THIN - ) - ) - ) -); - -// Unprotect a cell -echo date('H:i:s') , " Unprotect a cell" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(\PHPExcel\Style\Protection::PROTECTION_UNPROTECTED); - -// Add a hyperlink to the sheet -echo date('H:i:s') , " Add a hyperlink to an external website" , EOL; -$objPHPExcel->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net'); -$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net'); -$objPHPExcel->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website'); -$objPHPExcel->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(\PHPExcel\Style\Alignment::HORIZONTAL_RIGHT); - -echo date('H:i:s') , " Add a hyperlink to another cell on a different worksheet within the workbook" , EOL; -$objPHPExcel->getActiveSheet()->setCellValue('E27', 'Terms and conditions'); -$objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setUrl("sheet://'Terms and conditions'!A1"); -$objPHPExcel->getActiveSheet()->getCell('E27')->getHyperlink()->setTooltip('Review terms and conditions'); -$objPHPExcel->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(\PHPExcel\Style\Alignment::HORIZONTAL_RIGHT); - -// Add a drawing to the worksheet -echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; -$objDrawing = new \PHPExcel\Worksheet\Drawing(); -$objDrawing->setName('Logo'); -$objDrawing->setDescription('Logo'); -$objDrawing->setPath('./images/officelogo.jpg'); -$objDrawing->setHeight(36); -$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); - -// Add a drawing to the worksheet -echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; -$objDrawing = new \PHPExcel\Worksheet\Drawing(); -$objDrawing->setName('Paid'); -$objDrawing->setDescription('Paid'); -$objDrawing->setPath('./images/paid.png'); -$objDrawing->setCoordinates('B15'); -$objDrawing->setOffsetX(110); -$objDrawing->setRotation(25); -$objDrawing->getShadow()->setVisible(true); -$objDrawing->getShadow()->setDirection(45); -$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); - -// Add a drawing to the worksheet -echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; -$objDrawing = new \PHPExcel\Worksheet\Drawing(); -$objDrawing->setName('PHPExcel logo'); -$objDrawing->setDescription('PHPExcel logo'); -$objDrawing->setPath('./images/phpexcel_logo.gif'); -$objDrawing->setHeight(36); -$objDrawing->setCoordinates('D24'); -$objDrawing->setOffsetX(10); -$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); - -// Play around with inserting and removing rows and columns -echo date('H:i:s') , " Play around with inserting and removing rows and columns" , EOL; -$objPHPExcel->getActiveSheet()->insertNewRowBefore(6, 10); -$objPHPExcel->getActiveSheet()->removeRow(6, 10); -$objPHPExcel->getActiveSheet()->insertNewColumnBefore('E', 5); -$objPHPExcel->getActiveSheet()->removeColumn('E', 5); - -// Set header and footer. When no different headers for odd/even are used, odd header is assumed. -echo date('H:i:s') , " Set header/footer" , EOL; -$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BInvoice&RPrinted on &D'); -$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N'); - -// Set page orientation and size -echo date('H:i:s') , " Set page orientation and size" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(\PHPExcel\Worksheet\PageSetup::ORIENTATION_PORTRAIT); -$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(\PHPExcel\Worksheet\PageSetup::PAPERSIZE_A4); - -// Rename first worksheet -echo date('H:i:s') , " Rename first worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Invoice'); - - -// Create a new worksheet, after the default sheet -echo date('H:i:s') , " Create a second Worksheet object" , EOL; -$objPHPExcel->createSheet(); - -// Llorem ipsum... -$sLloremIpsum = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eget ante. Sed cursus nunc semper tortor. Aliquam luctus purus non elit. Fusce vel elit commodo sapien dignissim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur accumsan magna sed massa. Nullam bibendum quam ac ipsum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin augue. Praesent malesuada justo sed orci. Pellentesque lacus ligula, sodales quis, ultricies a, ultricies vitae, elit. Sed luctus consectetuer dolor. Vivamus vel sem ut nisi sodales accumsan. Nunc et felis. Suspendisse semper viverra odio. Morbi at odio. Integer a orci a purus venenatis molestie. Nam mattis. Praesent rhoncus, nisi vel mattis auctor, neque nisi faucibus sem, non dapibus elit pede ac nisl. Cras turpis.'; - -// Add some data to the second sheet, resembling some different data types -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(1); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Terms and conditions'); -$objPHPExcel->getActiveSheet()->setCellValue('A3', $sLloremIpsum); -$objPHPExcel->getActiveSheet()->setCellValue('A4', $sLloremIpsum); -$objPHPExcel->getActiveSheet()->setCellValue('A5', $sLloremIpsum); -$objPHPExcel->getActiveSheet()->setCellValue('A6', $sLloremIpsum); - -// Set the worksheet tab color -echo date('H:i:s') , " Set the worksheet tab color" , EOL; -$objPHPExcel->getActiveSheet()->getTabColor()->setARGB('FF0094FF');; - -// Set alignments -echo date('H:i:s') , " Set alignments" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getAlignment()->setWrapText(true); - -// Set column widths -echo date('H:i:s') , " Set column widths" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(80); - -// Set fonts -echo date('H:i:s') , " Set fonts" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara'); -$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(20); -$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(\PHPExcel\Style\Font::UNDERLINE_SINGLE); - -$objPHPExcel->getActiveSheet()->getStyle('A3:A6')->getFont()->setSize(8); - -// Add a drawing to the worksheet -echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; -$objDrawing = new \PHPExcel\Worksheet\Drawing(); -$objDrawing->setName('Terms and conditions'); -$objDrawing->setDescription('Terms and conditions'); -$objDrawing->setPath('./images/termsconditions.jpg'); -$objDrawing->setCoordinates('B14'); -$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); - -// Set page orientation and size -echo date('H:i:s') , " Set page orientation and size" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(\PHPExcel\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); -$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(\PHPExcel\Worksheet\PageSetup::PAPERSIZE_A4); - -// Rename second worksheet -echo date('H:i:s') , " Rename second worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Terms and conditions'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); diff --git a/Examples/05featuredemo.php b/Examples/05featuredemo.php deleted file mode 100644 index e8373ecd..00000000 --- a/Examples/05featuredemo.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -include "05featuredemo.inc.php"; - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/06largescale-with-cellcaching-sqlite.php b/Examples/06largescale-with-cellcaching-sqlite.php deleted file mode 100644 index 96be8a45..00000000 --- a/Examples/06largescale-with-cellcaching-sqlite.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -$cacheMethod = \PHPExcel\CachedObjectStorageFactory::CACHE_TO_SQLITE; -if (\PHPExcel\Settings::setCacheStorageMethod($cacheMethod)) { - echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL; -} else { - echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL; -} - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); -$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); -$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); -$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); -$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); - - -// Hide "Phone" and "fax" column -echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); - - -// Set outline levels -echo date('H:i:s') , " Set outline levels" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) - ->setVisible(false) - ->setCollapsed(true); - -// Freeze panes -echo date('H:i:s') , " Freeze panes" , EOL; -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - -// Rows to repeat at top -echo date('H:i:s') , " Rows to repeat at top" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); - - -// Add data -for ($i = 2; $i <= 5000; $i++) { - $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") - ->setCellValue('B' . $i, "LName $i") - ->setCellValue('C' . $i, "PhoneNo $i") - ->setCellValue('D' . $i, "FaxNo $i") - ->setCellValue('E' . $i, true); -} - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/06largescale-with-cellcaching-sqlite3.php b/Examples/06largescale-with-cellcaching-sqlite3.php deleted file mode 100644 index 2edc2f54..00000000 --- a/Examples/06largescale-with-cellcaching-sqlite3.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -$cacheMethod = \PHPExcel\CachedObjectStorageFactory::CACHE_TO_SQLITE3; -if (\PHPExcel\Settings::setCacheStorageMethod($cacheMethod)) { - echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL; -} else { - echo date('H:i:s') , " Unable to set Cell Caching using " , $cacheMethod , " method, reverting to memory" , EOL; -} - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); -$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); -$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); -$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); -$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); - - -// Hide "Phone" and "fax" column -echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); - - -// Set outline levels -echo date('H:i:s') , " Set outline levels" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) - ->setVisible(false) - ->setCollapsed(true); - -// Freeze panes -echo date('H:i:s') , " Freeze panes" , EOL; -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - -// Rows to repeat at top -echo date('H:i:s') , " Rows to repeat at top" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); - - -// Add data -for ($i = 2; $i <= 5000; $i++) { - $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") - ->setCellValue('B' . $i, "LName $i") - ->setCellValue('C' . $i, "PhoneNo $i") - ->setCellValue('D' . $i, "FaxNo $i") - ->setCellValue('E' . $i, true); -} - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/06largescale-with-cellcaching.php b/Examples/06largescale-with-cellcaching.php deleted file mode 100644 index a4939418..00000000 --- a/Examples/06largescale-with-cellcaching.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -$cacheMethod = \PHPExcel\CachedObjectStorageFactory::CACHE_IN_MEMORY_GZIP; -if (!\PHPExcel\Settings::setCacheStorageMethod($cacheMethod)) { - die($cacheMethod . " caching method is not available" . EOL); -} -echo date('H:i:s') , " Enable Cell Caching using " , $cacheMethod , " method" , EOL; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); -$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); -$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); -$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); -$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); - - -// Hide "Phone" and "fax" column -echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); - - -// Set outline levels -echo date('H:i:s') , " Set outline levels" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) - ->setVisible(false) - ->setCollapsed(true); - -// Freeze panes -echo date('H:i:s') , " Freeze panes" , EOL; -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - -// Rows to repeat at top -echo date('H:i:s') , " Rows to repeat at top" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); - - -// Add data -for ($i = 2; $i <= 5000; $i++) { - $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") - ->setCellValue('B' . $i, "LName $i") - ->setCellValue('C' . $i, "PhoneNo $i") - ->setCellValue('D' . $i, "FaxNo $i") - ->setCellValue('E' . $i, true); -} - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/06largescale-xls.php b/Examples/06largescale-xls.php deleted file mode 100644 index e4a6e24b..00000000 --- a/Examples/06largescale-xls.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -/* -After doing some test, I've got these results benchmarked -for writing to Excel2007: - - Number of rows Seconds to generate - 200 3 - 500 4 - 1000 6 - 2000 12 - 4000 36 - 8000 64 - 15000 465 -*/ - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); -$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); -$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); -$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); -$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); - - -// Hide "Phone" and "fax" column -echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); - - -// Set outline levels -echo date('H:i:s') , " Set outline levels" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) - ->setVisible(false) - ->setCollapsed(true); - -// Freeze panes -echo date('H:i:s') , " Freeze panes" , EOL; -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - -// Rows to repeat at top -echo date('H:i:s') , " Rows to repeat at top" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); - - -// Add data -for ($i = 2; $i <= 5000; $i++) { - $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") - ->setCellValue('B' . $i, "LName $i") - ->setCellValue('C' . $i, "PhoneNo $i") - ->setCellValue('D' . $i, "FaxNo $i") - ->setCellValue('E' . $i, true); -} - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/06largescale.php b/Examples/06largescale.php deleted file mode 100644 index e9b48af8..00000000 --- a/Examples/06largescale.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -/* -After doing some test, I've got these results benchmarked -for writing to Excel2007: - - Number of rows Seconds to generate - 200 3 - 500 4 - 1000 6 - 2000 12 - 4000 36 - 8000 64 - 15000 465 -*/ - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname"); -$objPHPExcel->getActiveSheet()->setCellValue('B1', "Lastname"); -$objPHPExcel->getActiveSheet()->setCellValue('C1', "Phone"); -$objPHPExcel->getActiveSheet()->setCellValue('D1', "Fax"); -$objPHPExcel->getActiveSheet()->setCellValue('E1', "Is Client ?"); - - -// Hide "Phone" and "fax" column -echo date('H:i:s') , " Hide 'Phone' and 'fax' columns" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setVisible(false); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setVisible(false); - - -// Set outline levels -echo date('H:i:s') , " Set outline levels" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) - ->setVisible(false) - ->setCollapsed(true); - -// Freeze panes -echo date('H:i:s') , " Freeze panes" , EOL; -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - -// Rows to repeat at top -echo date('H:i:s') , " Rows to repeat at top" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); - - -// Add data -for ($i = 2; $i <= 5000; $i++) { - $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i") - ->setCellValue('B' . $i, "LName $i") - ->setCellValue('C' . $i, "PhoneNo $i") - ->setCellValue('D' . $i, "FaxNo $i") - ->setCellValue('E' . $i, true); -} - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/07reader.php b/Examples/07reader.php deleted file mode 100644 index 875dc431..00000000 --- a/Examples/07reader.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -if (!file_exists("05featuredemo.xlsx")) { - exit("Please run 05featuredemo.php first." . EOL); -} - -echo date('H:i:s') , " Load from Excel2007 file" , EOL; -$callStartTime = microtime(true); - -$objPHPExcel = \PHPExcel\IOFactory::load("05featuredemo.xlsx"); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/07readerPCLZip.php b/Examples/07readerPCLZip.php deleted file mode 100644 index 76d0cb14..00000000 --- a/Examples/07readerPCLZip.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -if (!file_exists("05featuredemo.xlsx")) { - exit("Please run 05featuredemo.php first." . EOL); -} - -// Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file -\PHPExcel\Settings::setZipClass(\PHPExcel\Settings::PCLZIP); - -echo date('H:i:s') , " Load from Excel2007 file" , EOL; -$callStartTime = microtime(true); - -$objPHPExcel = \PHPExcel\IOFactory::load("05featuredemo.xlsx"); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/08conditionalformatting.php b/Examples/08conditionalformatting.php deleted file mode 100644 index 396eb83c..00000000 --- a/Examples/08conditionalformatting.php +++ /dev/null @@ -1,189 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet, representing sales data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Description') - ->setCellValue('B1', 'Amount'); - -$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Paycheck received') - ->setCellValue('B2', 100); - -$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Cup of coffee bought') - ->setCellValue('B3', -1.5); - -$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Cup of coffee bought') - ->setCellValue('B4', -1.5); - -$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Cup of tea bought') - ->setCellValue('B5', -1.2); - -$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Found some money') - ->setCellValue('B6', 8); - -$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Total:') - ->setCellValue('B7', '=SUM(B2:B6)'); - - -// Set column widths -echo date('H:i:s') , " Set column widths" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(30); -$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(12); - - -// Add conditional formatting -echo date('H:i:s') , " Add conditional formatting" , EOL; -$objConditional1 = new \PHPExcel\Style\Conditional(); -$objConditional1->setConditionType(\PHPExcel\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PHPExcel\Style\Conditional::OPERATOR_BETWEEN) - ->addCondition('200') - ->addCondition('400'); -$objConditional1->getStyle()->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_YELLOW); -$objConditional1->getStyle()->getFont()->setBold(true); -$objConditional1->getStyle()->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); - -$objConditional2 = new \PHPExcel\Style\Conditional(); -$objConditional2->setConditionType(\PHPExcel\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PHPExcel\Style\Conditional::OPERATOR_LESSTHAN) - ->addCondition('0'); -$objConditional2->getStyle()->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_RED); -$objConditional2->getStyle()->getFont()->setItalic(true); -$objConditional2->getStyle()->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); - -$objConditional3 = new \PHPExcel\Style\Conditional(); -$objConditional3->setConditionType(\PHPExcel\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PHPExcel\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) - ->addCondition('0'); -$objConditional3->getStyle()->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_GREEN); -$objConditional3->getStyle()->getFont()->setItalic(true); -$objConditional3->getStyle()->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); - -$conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles(); -array_push($conditionalStyles, $objConditional1); -array_push($conditionalStyles, $objConditional2); -array_push($conditionalStyles, $objConditional3); -$objPHPExcel->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditionalStyles); - - -// duplicate the conditional styles across a range of cells -echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL; -$objPHPExcel->getActiveSheet()->duplicateConditionalStyle( - $objPHPExcel->getActiveSheet()->getStyle('B2')->getConditionalStyles(), - 'B3:B7' - ); - - -// Set fonts -echo date('H:i:s') , " Set fonts" , EOL; -$objPHPExcel->getActiveSheet()->getStyle('A1:B1')->getFont()->setBold(true); -//$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getStyle('A7:B7')->getFont()->setBold(true); -//$objPHPExcel->getActiveSheet()->getStyle('B7')->getFont()->setBold(true); - - -// Set header and footer. When no different headers for odd/even are used, odd header is assumed. -echo date('H:i:s') , " Set header/footer" , EOL; -$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D'); -$objPHPExcel->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $objPHPExcel->getProperties()->getTitle() . '&RPage &P of &N'); - - -// Set page orientation and size -echo date('H:i:s') , " Set page orientation and size" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(\PHPExcel\Worksheet\PageSetup::ORIENTATION_PORTRAIT); -$objPHPExcel->getActiveSheet()->getPageSetup()->setPaperSize(\PHPExcel\Worksheet\PageSetup::PAPERSIZE_A4); - - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Invoice'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Save Excel5 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/08conditionalformatting2.php b/Examples/08conditionalformatting2.php deleted file mode 100644 index 394d7bae..00000000 --- a/Examples/08conditionalformatting2.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet, representing sales data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet() - ->setCellValue('A1', '-0.5') - ->setCellValue('A2', '-0.25') - ->setCellValue('A3', '0.0') - ->setCellValue('A4', '0.25') - ->setCellValue('A5', '0.5') - ->setCellValue('A6', '0.75') - ->setCellValue('A7', '1.0') - ->setCellValue('A8', '1.25') -; - -$objPHPExcel->getActiveSheet()->getStyle('A1:A8') - ->getNumberFormat() - ->setFormatCode( - \PHPExcel\Style\NumberFormat::FORMAT_PERCENTAGE_00 - ); - - -// Add conditional formatting -echo date('H:i:s') , " Add conditional formatting" , EOL; -$objConditional1 = new \PHPExcel\Style\Conditional(); -$objConditional1->setConditionType(\PHPExcel\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PHPExcel\Style\Conditional::OPERATOR_LESSTHAN) - ->addCondition('0'); -$objConditional1->getStyle()->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_RED); - -$objConditional3 = new \PHPExcel\Style\Conditional(); -$objConditional3->setConditionType(\PHPExcel\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PHPExcel\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) - ->addCondition('1'); -$objConditional3->getStyle()->getFont()->getColor()->setARGB(\PHPExcel\Style\Color::COLOR_GREEN); - -$conditionalStyles = $objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles(); -array_push($conditionalStyles, $objConditional1); -array_push($conditionalStyles, $objConditional3); -$objPHPExcel->getActiveSheet()->getStyle('A1')->setConditionalStyles($conditionalStyles); - - -// duplicate the conditional styles across a range of cells -echo date('H:i:s') , " Duplicate the conditional formatting across a range of cells" , EOL; -$objPHPExcel->getActiveSheet()->duplicateConditionalStyle( - $objPHPExcel->getActiveSheet()->getStyle('A1')->getConditionalStyles(), - 'A2:A8' - ); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Save Excel5 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/09pagebreaks.php b/Examples/09pagebreaks.php deleted file mode 100644 index f7084fcf..00000000 --- a/Examples/09pagebreaks.php +++ /dev/null @@ -1,134 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data and page breaks" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Firstname") - ->setCellValue('B1', "Lastname") - ->setCellValue('C1', "Phone") - ->setCellValue('D1', "Fax") - ->setCellValue('E1', "Is Client ?"); - - -// Add data -for ($i = 2; $i <= 50; $i++) { - $objPHPExcel->getActiveSheet()->setCellValue('A' . $i, "FName $i"); - $objPHPExcel->getActiveSheet()->setCellValue('B' . $i, "LName $i"); - $objPHPExcel->getActiveSheet()->setCellValue('C' . $i, "PhoneNo $i"); - $objPHPExcel->getActiveSheet()->setCellValue('D' . $i, "FaxNo $i"); - $objPHPExcel->getActiveSheet()->setCellValue('E' . $i, true); - - // Add page breaks every 10 rows - if ($i % 10 == 0) { - // Add a page break - $objPHPExcel->getActiveSheet()->setBreak( 'A' . $i, \PHPExcel\Worksheet::BREAK_ROW ); - } -} - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setTitle('Printing Options'); - -// Set print headers -$objPHPExcel->getActiveSheet() - ->getHeaderFooter()->setOddHeader('&C&24&K0000FF&B&U&A'); -$objPHPExcel->getActiveSheet() - ->getHeaderFooter()->setEvenHeader('&C&24&K0000FF&B&U&A'); - -// Set print footers -$objPHPExcel->getActiveSheet() - ->getHeaderFooter()->setOddFooter('&R&D &T&C&F&LPage &P / &N'); -$objPHPExcel->getActiveSheet() - ->getHeaderFooter()->setEvenFooter('&L&D &T&C&F&RPage &P / &N'); - - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/10autofilter-selection-1.php b/Examples/10autofilter-selection-1.php deleted file mode 100644 index 81e51489..00000000 --- a/Examples/10autofilter-selection-1.php +++ /dev/null @@ -1,221 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s').' Create new PHPExcel object'.EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s').' Set document properties'.EOL; -$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') - ->setLastModifiedBy('Maarten Balliauw') - ->setTitle('PHPExcel Test Document') - ->setSubject('PHPExcel Test Document') - ->setDescription('Test document for PHPExcel, generated using PHP classes.') - ->setKeywords('office PHPExcel php') - ->setCategory('Test result file'); - -// Create the worksheet -echo date('H:i:s').' Add data'.EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year') - ->setCellValue('B1', 'Financial Period') - ->setCellValue('C1', 'Country') - ->setCellValue('D1', 'Date') - ->setCellValue('E1', 'Sales Value') - ->setCellValue('F1', 'Expenditure') - ; -$startYear = $endYear = $currentYear = date('Y'); -$startYear--; -$endYear++; - -$years = range($startYear,$endYear); -$periods = range(1,12); -$countries = array( 'United States', 'UK', 'France', 'Germany', - 'Italy', 'Spain', 'Portugal', 'Japan' - ); - -$row = 2; -foreach($years as $year) { - foreach($periods as $period) { - foreach($countries as $country) { - $endDays = date('t',mktime(0,0,0,$period,1,$year)); - for($i = 1; $i <= $endDays; ++$i) { - $eDate = \PHPExcel\Shared\Date::formattedPHPToExcel( - $year, - $period, - $i - ); - $value = rand(500,1000) * (1 + rand(-0.25,+0.25)); - $salesValue = $invoiceValue = NULL; - $incomeOrExpenditure = rand(-1,1); - if ($incomeOrExpenditure == -1) { - $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); - $income = NULL; - } elseif ($incomeOrExpenditure == 1) { - $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); - $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; - } else { - $expenditure = NULL; - $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; - } - $dataArray = array( $year, - $period, - $country, - $eDate, - $income, - $expenditure, - ); - $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++); - } - } - } -} -$row--; - - -// Set styling -echo date('H:i:s').' Set styling'.EOL; -$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE); -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); -$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); -$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); -$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14); -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - - -// Set autofilter range -echo date('H:i:s').' Set autofilter range'.EOL; -// Always include the complete filter range! -// Excel does support setting only the caption -// row, but that's not a best practise... -$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); - -// Set active filters -$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); -echo date('H:i:s').' Set active filters'.EOL; -// Filter the Country column on a filter value of countries beginning with the letter U (or Japan) -// We use * as a wildcard, so specify as U* and using a wildcard requires customFilter -$autoFilter->getColumn('C') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - 'u*' - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); -$autoFilter->getColumn('C') - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - 'japan' - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); -// Filter the Date column on a filter value of the first day of every period of the current year -// We us a dateGroup ruletype for this, although it is still a standard filter -foreach($periods as $period) { - $endDate = date('t',mktime(0,0,0,$period,1,$currentYear)); - - $autoFilter->getColumn('D') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - array( - 'year' => $currentYear, - 'month' => $period, - 'day' => $endDate - ) - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); -} -// Display only sales values that are blank -// Standard filter, operator equals, and value of NULL -$autoFilter->getColumn('E') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - '' - ); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL; - -// Echo done -echo date('H:i:s').' Done writing files'.EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/10autofilter-selection-2.php b/Examples/10autofilter-selection-2.php deleted file mode 100644 index 087ba43e..00000000 --- a/Examples/10autofilter-selection-2.php +++ /dev/null @@ -1,212 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s').' Create new PHPExcel object'.EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s').' Set document properties'.EOL; -$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') - ->setLastModifiedBy('Maarten Balliauw') - ->setTitle('PHPExcel Test Document') - ->setSubject('PHPExcel Test Document') - ->setDescription('Test document for PHPExcel, generated using PHP classes.') - ->setKeywords('office PHPExcel php') - ->setCategory('Test result file'); - -// Create the worksheet -echo date('H:i:s').' Add data'.EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year') - ->setCellValue('B1', 'Financial Period') - ->setCellValue('C1', 'Country') - ->setCellValue('D1', 'Date') - ->setCellValue('E1', 'Sales Value') - ->setCellValue('F1', 'Expenditure'); -$startYear = $endYear = $currentYear = date('Y'); -$startYear--; -$endYear++; - -$years = range($startYear,$endYear); -$periods = range(1,12); -$countries = array( 'United States', 'UK', 'France', 'Germany', - 'Italy', 'Spain', 'Portugal', 'Japan' - ); - -$row = 2; -foreach($years as $year) { - foreach($periods as $period) { - foreach($countries as $country) { - $endDays = date('t',mktime(0,0,0,$period,1,$year)); - for($i = 1; $i <= $endDays; ++$i) { - $eDate = \PHPExcel\Shared\Date::formattedPHPToExcel( - $year, - $period, - $i - ); - $value = rand(500,1000) * (1 + rand(-0.25,+0.25)); - $salesValue = $invoiceValue = NULL; - $incomeOrExpenditure = rand(-1,1); - if ($incomeOrExpenditure == -1) { - $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); - $income = NULL; - } elseif ($incomeOrExpenditure == 1) { - $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); - $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; - } else { - $expenditure = NULL; - $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; - } - $dataArray = array( $year, - $period, - $country, - $eDate, - $income, - $expenditure, - ); - $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++); - } - } - } -} -$row--; - - -// Set styling -echo date('H:i:s').' Set styling'.EOL; -$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE); -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); -$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); -$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); -$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14); -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - - -// Set autofilter range -echo date('H:i:s').' Set autofilter range'.EOL; -// Always include the complete filter range! -// Excel does support setting only the caption -// row, but that's not a best practise... -$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); - -// Set active filters -$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); -echo date('H:i:s').' Set active filters'.EOL; -// Filter the Country column on a filter value of Germany -// As it's just a simple value filter, we can use FILTERTYPE_FILTER -$autoFilter->getColumn('C') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - 'Germany' - ); -// Filter the Date column on a filter value of the year to date -$autoFilter->getColumn('D') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - NULL, - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); -// Display only sales values that are between 400 and 600 -$autoFilter->getColumn('E') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, - 400 - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); -$autoFilter->getColumn('E') - ->setJoin(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, - 600 - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL; - -// Echo done -echo date('H:i:s').' Done writing files'.EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/10autofilter-selection-display.php b/Examples/10autofilter-selection-display.php deleted file mode 100644 index 28ceb507..00000000 --- a/Examples/10autofilter-selection-display.php +++ /dev/null @@ -1,198 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s').' Create new PHPExcel object'.EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s').' Set document properties'.EOL; -$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') - ->setLastModifiedBy('Maarten Balliauw') - ->setTitle('PHPExcel Test Document') - ->setSubject('PHPExcel Test Document') - ->setDescription('Test document for PHPExcel, generated using PHP classes.') - ->setKeywords('office PHPExcel php') - ->setCategory('Test result file'); - -// Create the worksheet -echo date('H:i:s').' Add data'.EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Financial Year') - ->setCellValue('B1', 'Financial Period') - ->setCellValue('C1', 'Country') - ->setCellValue('D1', 'Date') - ->setCellValue('E1', 'Sales Value') - ->setCellValue('F1', 'Expenditure') - ; -$startYear = $endYear = $currentYear = date('Y'); -$startYear--; -$endYear++; - -$years = range($startYear,$endYear); -$periods = range(1,12); -$countries = array( 'United States', 'UK', 'France', 'Germany', - 'Italy', 'Spain', 'Portugal', 'Japan' - ); - -$row = 2; -foreach($years as $year) { - foreach($periods as $period) { - foreach($countries as $country) { - $endDays = date('t',mktime(0,0,0,$period,1,$year)); - for($i = 1; $i <= $endDays; ++$i) { - $eDate = \PHPExcel\Shared\Date::formattedPHPToExcel( - $year, - $period, - $i - ); - $value = rand(500,1000) * (1 + rand(-0.25,+0.25)); - $salesValue = $invoiceValue = NULL; - $incomeOrExpenditure = rand(-1,1); - if ($incomeOrExpenditure == -1) { - $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); - $income = NULL; - } elseif ($incomeOrExpenditure == 1) { - $expenditure = rand(-500,-1000) * (1 + rand(-0.25,+0.25)); - $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; - } else { - $expenditure = NULL; - $income = rand(500,1000) * (1 + rand(-0.25,+0.25));; - } - $dataArray = array( $year, - $period, - $country, - $eDate, - $income, - $expenditure, - ); - $objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A'.$row++); - } - } - } -} -$row--; - - -// Set styling -echo date('H:i:s').' Set styling'.EOL; -$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); -$objPHPExcel->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(TRUE); -$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); -$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); -$objPHPExcel->getActiveSheet()->getStyle('D2:D'.$row)->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); -$objPHPExcel->getActiveSheet()->getStyle('E2:F'.$row)->getNumberFormat()->setFormatCode(\PHPExcel\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); -$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(14); -$objPHPExcel->getActiveSheet()->freezePane('A2'); - - - -// Set autofilter range -echo date('H:i:s').' Set autofilter range'.EOL; -// Always include the complete filter range! -// Excel does support setting only the caption -// row, but that's not a best practise... -$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); - -// Set active filters -$autoFilter = $objPHPExcel->getActiveSheet()->getAutoFilter(); -echo date('H:i:s').' Set active filters'.EOL; -// Filter the Country column on a filter value of countries beginning with the letter U (or Japan) -// We use * as a wildcard, so specify as U* and using a wildcard requires customFilter -$autoFilter->getColumn('C') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - 'u*' - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); -$autoFilter->getColumn('C') - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - 'japan' - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); -// Filter the Date column on a filter value of the first day of every period of the current year -// We us a dateGroup ruletype for this, although it is still a standard filter -foreach($periods as $period) { - $endDate = date('t',mktime(0,0,0,$period,1,$currentYear)); - - $autoFilter->getColumn('D') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - array( - 'year' => $currentYear, - 'month' => $period, - 'day' => $endDate - ) - ) - ->setRuleType(\PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); -} -// Display only sales values that are blank -// Standard filter, operator equals, and value of NULL -$autoFilter->getColumn('E') - ->setFilterType(\PHPExcel\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) - ->createRule() - ->setRule( - \PHPExcel\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, - '' - ); - -// Execute filtering -echo date('H:i:s').' Execute filtering'.EOL; -$autoFilter->showHideRows(); - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Display Results of filtering -echo date('H:i:s').' Display filtered rows'.EOL; -foreach ($objPHPExcel->getActiveSheet()->getRowIterator() as $row) { - if ($objPHPExcel->getActiveSheet()->getRowDimension($row->getRowIndex())->getVisible()) { - echo ' Row number - ' , $row->getRowIndex() , ' '; - echo $objPHPExcel->getActiveSheet()->getCell('C'.$row->getRowIndex())->getValue(), ' '; - echo $objPHPExcel->getActiveSheet()->getCell('D'.$row->getRowIndex())->getFormattedValue(), ' '; - echo EOL; - } -} diff --git a/Examples/10autofilter.php b/Examples/10autofilter.php deleted file mode 100644 index a4f0c008..00000000 --- a/Examples/10autofilter.php +++ /dev/null @@ -1,171 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -// Create new PHPExcel object -echo date('H:i:s').' Create new PHPExcel object'.EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s').' Set document properties'.EOL; -$objPHPExcel->getProperties()->setCreator('Maarten Balliauw') - ->setLastModifiedBy('Maarten Balliauw') - ->setTitle('PHPExcel Test Document') - ->setSubject('PHPExcel Test Document') - ->setDescription('Test document for PHPExcel, generated using PHP classes.') - ->setKeywords('office PHPExcel php') - ->setCategory('Test result file'); - -// Create the worksheet -echo date('H:i:s').' Add data'.EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Year') - ->setCellValue('B1', 'Quarter') - ->setCellValue('C1', 'Country') - ->setCellValue('D1', 'Sales'); - -$dataArray = array(array('2010', 'Q1', 'United States', 790), - array('2010', 'Q2', 'United States', 730), - array('2010', 'Q3', 'United States', 860), - array('2010', 'Q4', 'United States', 850), - array('2011', 'Q1', 'United States', 800), - array('2011', 'Q2', 'United States', 700), - array('2011', 'Q3', 'United States', 900), - array('2011', 'Q4', 'United States', 950), - array('2010', 'Q1', 'Belgium', 380), - array('2010', 'Q2', 'Belgium', 390), - array('2010', 'Q3', 'Belgium', 420), - array('2010', 'Q4', 'Belgium', 460), - array('2011', 'Q1', 'Belgium', 400), - array('2011', 'Q2', 'Belgium', 350), - array('2011', 'Q3', 'Belgium', 450), - array('2011', 'Q4', 'Belgium', 500), - array('2010', 'Q1', 'UK', 690), - array('2010', 'Q2', 'UK', 610), - array('2010', 'Q3', 'UK', 620), - array('2010', 'Q4', 'UK', 600), - array('2011', 'Q1', 'UK', 720), - array('2011', 'Q2', 'UK', 650), - array('2011', 'Q3', 'UK', 580), - array('2011', 'Q4', 'UK', 510), - array('2010', 'Q1', 'France', 510), - array('2010', 'Q2', 'France', 490), - array('2010', 'Q3', 'France', 460), - array('2010', 'Q4', 'France', 590), - array('2011', 'Q1', 'France', 620), - array('2011', 'Q2', 'France', 650), - array('2011', 'Q3', 'France', 415), - array('2011', 'Q4', 'France', 570), - array('2010', 'Q1', 'Germany', 720), - array('2010', 'Q2', 'Germany', 680), - array('2010', 'Q3', 'Germany', 640), - array('2010', 'Q4', 'Germany', 660), - array('2011', 'Q1', 'Germany', 680), - array('2011', 'Q2', 'Germany', 620), - array('2011', 'Q3', 'Germany', 710), - array('2011', 'Q4', 'Germany', 690), - array('2010', 'Q1', 'Spain', 510), - array('2010', 'Q2', 'Spain', 490), - array('2010', 'Q3', 'Spain', 470), - array('2010', 'Q4', 'Spain', 420), - array('2011', 'Q1', 'Spain', 460), - array('2011', 'Q2', 'Spain', 390), - array('2011', 'Q3', 'Spain', 430), - array('2011', 'Q4', 'Spain', 415), - array('2010', 'Q1', 'Italy', 440), - array('2010', 'Q2', 'Italy', 410), - array('2010', 'Q3', 'Italy', 420), - array('2010', 'Q4', 'Italy', 450), - array('2011', 'Q1', 'Italy', 430), - array('2011', 'Q2', 'Italy', 370), - array('2011', 'Q3', 'Italy', 350), - array('2011', 'Q4', 'Italy', 335), - ); -$objPHPExcel->getActiveSheet()->fromArray($dataArray, NULL, 'A2'); - -// Set title row bold -echo date('H:i:s').' Set title row bold'.EOL; -$objPHPExcel->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true); - -// Set autofilter -echo date('H:i:s').' Set autofilter'.EOL; -// Always include the complete filter range! -// Excel does support setting only the caption -// row, but that's not a best practise... -$objPHPExcel->getActiveSheet()->setAutoFilter($objPHPExcel->getActiveSheet()->calculateWorksheetDimension()); - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s').' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB'.EOL; - -// Echo done -echo date('H:i:s').' Done writing files'.EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/11documentsecurity-xls.php b/Examples/11documentsecurity-xls.php deleted file mode 100644 index 59f0cb3f..00000000 --- a/Examples/11documentsecurity-xls.php +++ /dev/null @@ -1,109 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello'); -$objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!'); -$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello'); -$objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!'); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Simple'); - - -// Set document security -echo date('H:i:s') , " Set document security" , EOL; -$objPHPExcel->getSecurity()->setLockWindows(true); -$objPHPExcel->getSecurity()->setLockStructure(true); -$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel"); - - -// Set sheet security -echo date('H:i:s') , " Set sheet security" , EOL; -$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel'); -$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following! -$objPHPExcel->getActiveSheet()->getProtection()->setSort(true); -$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); -$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/11documentsecurity.php b/Examples/11documentsecurity.php deleted file mode 100644 index 83546afd..00000000 --- a/Examples/11documentsecurity.php +++ /dev/null @@ -1,109 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Hello'); -$objPHPExcel->getActiveSheet()->setCellValue('B2', 'world!'); -$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Hello'); -$objPHPExcel->getActiveSheet()->setCellValue('D2', 'world!'); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Simple'); - - -// Set document security -echo date('H:i:s') , " Set document security" , EOL; -$objPHPExcel->getSecurity()->setLockWindows(true); -$objPHPExcel->getSecurity()->setLockStructure(true); -$objPHPExcel->getSecurity()->setWorkbookPassword("PHPExcel"); - - -// Set sheet security -echo date('H:i:s') , " Set sheet security" , EOL; -$objPHPExcel->getActiveSheet()->getProtection()->setPassword('PHPExcel'); -$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following! -$objPHPExcel->getActiveSheet()->getProtection()->setSort(true); -$objPHPExcel->getActiveSheet()->getProtection()->setInsertRows(true); -$objPHPExcel->getActiveSheet()->getProtection()->setFormatCells(true); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/12cellProtection.php b/Examples/12cellProtection.php deleted file mode 100644 index ac9ddaed..00000000 --- a/Examples/12cellProtection.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Mark Baker") - ->setLastModifiedBy("Mark Baker") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Crouching'); -$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Tiger'); -$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Hidden'); -$objPHPExcel->getActiveSheet()->setCellValue('B2', 'Dragon'); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Simple'); - - -// Set document security -echo date('H:i:s') , " Set cell protection" , EOL; - - -// Set sheet security -echo date('H:i:s') , " Set sheet security" , EOL; -$objPHPExcel->getActiveSheet()->getProtection()->setSheet(true); -$objPHPExcel->getActiveSheet() - ->getStyle('A2:B2') - ->getProtection()->setLocked( - \PHPExcel\Style\Protection::PROTECTION_UNPROTECTED - ); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/13calculation.php b/Examples/13calculation.php deleted file mode 100644 index e7ac97c3..00000000 --- a/Examples/13calculation.php +++ /dev/null @@ -1,235 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); -mt_srand(1234567890); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// List functions -echo date('H:i:s') , " List implemented functions" , EOL; -$objCalc = \PHPExcel\Calculation::getInstance(); -print_r($objCalc->listFunctionNames()); - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Add some data, we will use some formulas here -echo date('H:i:s') , " Add some data and formulas" , EOL; -$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:') - ->setCellValue('A15', 'Sum:') - ->setCellValue('A16', 'Max:') - ->setCellValue('A17', 'Min:') - ->setCellValue('A18', 'Average:') - ->setCellValue('A19', 'Median:') - ->setCellValue('A20', 'Mode:'); - -$objPHPExcel->getActiveSheet()->setCellValue('A22', 'CountA:') - ->setCellValue('A23', 'MaxA:') - ->setCellValue('A24', 'MinA:'); - -$objPHPExcel->getActiveSheet()->setCellValue('A26', 'StDev:') - ->setCellValue('A27', 'StDevA:') - ->setCellValue('A28', 'StDevP:') - ->setCellValue('A29', 'StDevPA:'); - -$objPHPExcel->getActiveSheet()->setCellValue('A31', 'DevSq:') - ->setCellValue('A32', 'Var:') - ->setCellValue('A33', 'VarA:') - ->setCellValue('A34', 'VarP:') - ->setCellValue('A35', 'VarPA:'); - -$objPHPExcel->getActiveSheet()->setCellValue('A37', 'Date:'); - - -$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1') - ->setCellValue('B2', 2) - ->setCellValue('B3', 8) - ->setCellValue('B4', 10) - ->setCellValue('B5', True) - ->setCellValue('B6', False) - ->setCellValue('B7', 'Text String') - ->setCellValue('B9', '22') - ->setCellValue('B10', 4) - ->setCellValue('B11', 6) - ->setCellValue('B12', 12); - -$objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)') - ->setCellValue('B15', '=SUM(B2:B12)') - ->setCellValue('B16', '=MAX(B2:B12)') - ->setCellValue('B17', '=MIN(B2:B12)') - ->setCellValue('B18', '=AVERAGE(B2:B12)') - ->setCellValue('B19', '=MEDIAN(B2:B12)') - ->setCellValue('B20', '=MODE(B2:B12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('B22', '=COUNTA(B2:B12)') - ->setCellValue('B23', '=MAXA(B2:B12)') - ->setCellValue('B24', '=MINA(B2:B12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('B26', '=STDEV(B2:B12)') - ->setCellValue('B27', '=STDEVA(B2:B12)') - ->setCellValue('B28', '=STDEVP(B2:B12)') - ->setCellValue('B29', '=STDEVPA(B2:B12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('B31', '=DEVSQ(B2:B12)') - ->setCellValue('B32', '=VAR(B2:B12)') - ->setCellValue('B33', '=VARA(B2:B12)') - ->setCellValue('B34', '=VARP(B2:B12)') - ->setCellValue('B35', '=VARPA(B2:B12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('B37', '=DATE(2007, 12, 21)') - ->setCellValue('B38', '=DATEDIF( DATE(2007, 12, 21), DATE(2007, 12, 22), "D" )') - ->setCellValue('B39', '=DATEVALUE("01-Feb-2006 10:06 AM")') - ->setCellValue('B40', '=DAY( DATE(2006, 1, 2) )') - ->setCellValue('B41', '=DAYS360( DATE(2002, 2, 3), DATE(2005, 5, 31) )'); - - -$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2') - ->setCellValue('C2', 1) - ->setCellValue('C3', 2) - ->setCellValue('C4', 2) - ->setCellValue('C5', 3) - ->setCellValue('C6', 3) - ->setCellValue('C7', 3) - ->setCellValue('C8', '0') - ->setCellValue('C9', 4) - ->setCellValue('C10', 4) - ->setCellValue('C11', 4) - ->setCellValue('C12', 4); - -$objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)') - ->setCellValue('C15', '=SUM(C2:C12)') - ->setCellValue('C16', '=MAX(C2:C12)') - ->setCellValue('C17', '=MIN(C2:C12)') - ->setCellValue('C18', '=AVERAGE(C2:C12)') - ->setCellValue('C19', '=MEDIAN(C2:C12)') - ->setCellValue('C20', '=MODE(C2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('C22', '=COUNTA(C2:C12)') - ->setCellValue('C23', '=MAXA(C2:C12)') - ->setCellValue('C24', '=MINA(C2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('C26', '=STDEV(C2:C12)') - ->setCellValue('C27', '=STDEVA(C2:C12)') - ->setCellValue('C28', '=STDEVP(C2:C12)') - ->setCellValue('C29', '=STDEVPA(C2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('C31', '=DEVSQ(C2:C12)') - ->setCellValue('C32', '=VAR(C2:C12)') - ->setCellValue('C33', '=VARA(C2:C12)') - ->setCellValue('C34', '=VARP(C2:C12)') - ->setCellValue('C35', '=VARPA(C2:C12)'); - - -$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3') - ->setCellValue('D2', 2) - ->setCellValue('D3', 3) - ->setCellValue('D4', 4); - -$objPHPExcel->getActiveSheet()->setCellValue('D14', '=((D2 * D3) + D4) & " should be 10"'); - -$objPHPExcel->getActiveSheet()->setCellValue('E12', 'Other functions') - ->setCellValue('E14', '=PI()') - ->setCellValue('E15', '=RAND()') - ->setCellValue('E16', '=RANDBETWEEN(5, 10)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E17', 'Count of both ranges:') - ->setCellValue('F17', '=COUNT(B2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E18', 'Total of both ranges:') - ->setCellValue('F18', '=SUM(B2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E19', 'Maximum of both ranges:') - ->setCellValue('F19', '=MAX(B2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E20', 'Minimum of both ranges:') - ->setCellValue('F20', '=MIN(B2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E21', 'Average of both ranges:') - ->setCellValue('F21', '=AVERAGE(B2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E22', 'Median of both ranges:') - ->setCellValue('F22', '=MEDIAN(B2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E23', 'Mode of both ranges:') - ->setCellValue('F23', '=MODE(B2:C12)'); - - -// Calculated data -echo date('H:i:s') , " Calculated data" , EOL; -for ($col = 'B'; $col != 'G'; ++$col) { - for($row = 14; $row <= 41; ++$row) { - if ((!is_null($formula = $objPHPExcel->getActiveSheet()->getCell($col.$row)->getValue())) && - ($formula[0] == '=')) { - echo 'Value of ' , $col , $row , ' [' , $formula , ']: ' , - $objPHPExcel->getActiveSheet()->getCell($col.$row)->getCalculatedValue() . EOL; - } - } -} - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); - -// -// If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the -// workbook before saving. This adds time and memory overhead, and can cause some problems with formulae -// using functions or features (such as array formulae) that aren't yet supported by the calculation engine -// If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to -// open the file) will need to recalculate values itself to guarantee that the correct results are available. -// -//$objWriter->setPreCalculateFormulas(true); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/13calculationCyclicFormulae.php b/Examples/13calculationCyclicFormulae.php deleted file mode 100644 index 33c24f22..00000000 --- a/Examples/13calculationCyclicFormulae.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (C) 2006 - 2014 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2014 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Add some data, we will use some formulas here -echo date('H:i:s') , " Add some data and formulas" , EOL; -$objPHPExcel->getActiveSheet()->setCellValue('A1', '=B1') - ->setCellValue('A2', '=B2+1') - ->setCellValue('B1', '=A1+1') - ->setCellValue('B2', '=A2'); - -\PHPExcel\Calculation::getInstance($objPHPExcel)->cyclicFormulaCount = 100; - -// Calculated data -echo date('H:i:s') , " Calculated data" , EOL; -for($row = 1; $row <= 2; ++$row) { - for ($col = 'A'; $col != 'C'; ++$col) { - if ((!is_null($formula = $objPHPExcel->getActiveSheet()->getCell($col.$row)->getValue())) && - ($formula[0] == '=')) { - echo 'Value of ' , $col , $row , ' [' , $formula , ']: ' , - $objPHPExcel->getActiveSheet()->getCell($col.$row)->getCalculatedValue() . EOL; - } - } -} - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); - -// -// If we set Pre Calculated Formulas to true then PHPExcel will calculate all formulae in the -// workbook before saving. This adds time and memory overhead, and can cause some problems with formulae -// using functions or features (such as array formulae) that aren't yet supported by the calculation engine -// If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to -// open the file) will need to recalculate values itself to guarantee that the correct results are available. -// -//$objWriter->setPreCalculateFormulas(true); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/14excel5.php b/Examples/14excel5.php deleted file mode 100644 index 99be07c9..00000000 --- a/Examples/14excel5.php +++ /dev/null @@ -1,63 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -include "05featuredemo.inc.php"; - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/15datavalidation-xls.php b/Examples/15datavalidation-xls.php deleted file mode 100644 index f6b673b4..00000000 --- a/Examples/15datavalidation-xls.php +++ /dev/null @@ -1,142 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...") - ->setCellValue('A3', "Number:") - ->setCellValue('B3', "10") - ->setCellValue('A5', "List:") - ->setCellValue('B5', "Item A") - ->setCellValue('A7', "List #2:") - ->setCellValue('B7', "Item #2") - ->setCellValue('D2', "Item #1") - ->setCellValue('D3', "Item #2") - ->setCellValue('D4', "Item #3") - ->setCellValue('D5', "Item #4") - ->setCellValue('D6', "Item #5") - ; - - -// Set data validation -echo date('H:i:s') , " Set data validation" , EOL; -$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation(); -$objValidation->setType( \PHPExcel\Cell\DataValidation::TYPE_WHOLE ); -$objValidation->setErrorStyle( \PHPExcel\Cell\DataValidation::STYLE_STOP ); -$objValidation->setAllowBlank(true); -$objValidation->setShowInputMessage(true); -$objValidation->setShowErrorMessage(true); -$objValidation->setErrorTitle('Input error'); -$objValidation->setError('Only numbers between 10 and 20 are allowed!'); -$objValidation->setPromptTitle('Allowed input'); -$objValidation->setPrompt('Only numbers between 10 and 20 are allowed.'); -$objValidation->setFormula1(10); -$objValidation->setFormula2(20); - -$objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation(); -$objValidation->setType( \PHPExcel\Cell\DataValidation::TYPE_LIST ); -$objValidation->setErrorStyle( \PHPExcel\Cell\DataValidation::STYLE_INFORMATION ); -$objValidation->setAllowBlank(false); -$objValidation->setShowInputMessage(true); -$objValidation->setShowErrorMessage(true); -$objValidation->setShowDropDown(true); -$objValidation->setErrorTitle('Input error'); -$objValidation->setError('Value is not in list.'); -$objValidation->setPromptTitle('Pick from list'); -$objValidation->setPrompt('Please pick a value from the drop-down list.'); -$objValidation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " !!! - -$objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation(); -$objValidation->setType( \PHPExcel\Cell\DataValidation::TYPE_LIST ); -$objValidation->setErrorStyle( \PHPExcel\Cell\DataValidation::STYLE_INFORMATION ); -$objValidation->setAllowBlank(false); -$objValidation->setShowInputMessage(true); -$objValidation->setShowErrorMessage(true); -$objValidation->setShowDropDown(true); -$objValidation->setErrorTitle('Input error'); -$objValidation->setError('Value is not in list.'); -$objValidation->setPromptTitle('Pick from list'); -$objValidation->setPrompt('Please pick a value from the drop-down list.'); -$objValidation->setFormula1('$D$2:$D$6'); // Make sure NOT to put a range of cells or a formula between " and " !!! - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/15datavalidation.php b/Examples/15datavalidation.php deleted file mode 100644 index 20fae42b..00000000 --- a/Examples/15datavalidation.php +++ /dev/null @@ -1,143 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Create a first sheet -echo date('H:i:s') , " Add data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', "Cell B3 and B5 contain data validation...") - ->setCellValue('A3', "Number:") - ->setCellValue('B3', "10") - ->setCellValue('A5', "List:") - ->setCellValue('B5', "Item A") - ->setCellValue('A7', "List #2:") - ->setCellValue('B7', "Item #2") - ->setCellValue('D2', "Item #1") - ->setCellValue('D3', "Item #2") - ->setCellValue('D4', "Item #3") - ->setCellValue('D5', "Item #4") - ->setCellValue('D6', "Item #5") - ; - - -// Set data validation -echo date('H:i:s') , " Set data validation" , EOL; -$objValidation = $objPHPExcel->getActiveSheet()->getCell('B3')->getDataValidation(); -$objValidation->setType( \PHPExcel\Cell\DataValidation::TYPE_WHOLE ); -$objValidation->setErrorStyle( \PHPExcel\Cell\DataValidation::STYLE_STOP ); -$objValidation->setAllowBlank(true); -$objValidation->setShowInputMessage(true); -$objValidation->setShowErrorMessage(true); -$objValidation->setErrorTitle('Input error'); -$objValidation->setError('Only numbers between 10 and 20 are allowed!'); -$objValidation->setPromptTitle('Allowed input'); -$objValidation->setPrompt('Only numbers between 10 and 20 are allowed.'); -$objValidation->setFormula1(10); -$objValidation->setFormula2(20); - -$objValidation = $objPHPExcel->getActiveSheet()->getCell('B5')->getDataValidation(); -$objValidation->setType( \PHPExcel\Cell\DataValidation::TYPE_LIST ); -$objValidation->setErrorStyle( \PHPExcel\Cell\DataValidation::STYLE_INFORMATION ); -$objValidation->setAllowBlank(false); -$objValidation->setShowInputMessage(true); -$objValidation->setShowErrorMessage(true); -$objValidation->setShowDropDown(true); -$objValidation->setErrorTitle('Input error'); -$objValidation->setError('Value is not in list.'); -$objValidation->setPromptTitle('Pick from list'); -$objValidation->setPrompt('Please pick a value from the drop-down list.'); -$objValidation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " if your list is simply a comma-separated list of values !!! - - -$objValidation = $objPHPExcel->getActiveSheet()->getCell('B7')->getDataValidation(); -$objValidation->setType( \PHPExcel\Cell\DataValidation::TYPE_LIST ); -$objValidation->setErrorStyle( \PHPExcel\Cell\DataValidation::STYLE_INFORMATION ); -$objValidation->setAllowBlank(false); -$objValidation->setShowInputMessage(true); -$objValidation->setShowErrorMessage(true); -$objValidation->setShowDropDown(true); -$objValidation->setErrorTitle('Input error'); -$objValidation->setError('Value is not in list.'); -$objValidation->setPromptTitle('Pick from list'); -$objValidation->setPrompt('Please pick a value from the drop-down list.'); -$objValidation->setFormula1('$D$2:$D$6'); // Make sure NOT to put a range of cells or a formula between " and " !!! - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/16csv.php b/Examples/16csv.php deleted file mode 100644 index c8ba2902..00000000 --- a/Examples/16csv.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -include "05featuredemo.inc.php"; - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -echo date('H:i:s') , " Write to CSV format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'CSV')->setDelimiter(',') - ->setEnclosure('"') - ->setSheetIndex(0) - ->save(str_replace('.php', '.csv', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Read from CSV format" , EOL; -$callStartTime = microtime(true); -$objReader = \PHPExcel\IOFactory::createReader('CSV')->setDelimiter(',') - ->setEnclosure('"') - ->setSheetIndex(0); -$objPHPExcelFromCSV = $objReader->load(str_replace('.php', '.csv', __FILE__)); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to reload Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter2007 = \PHPExcel\IOFactory::createWriter($objPHPExcelFromCSV, 'Excel2007'); -$objWriter2007->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Write to CSV format" , EOL; -$callStartTime = microtime(true); - -$objWriterCSV = \PHPExcel\IOFactory::createWriter($objPHPExcelFromCSV, 'CSV'); -$objWriterCSV->setExcelCompatibility(true); -$objWriterCSV->save(str_replace('.php', '_excel.csv', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo date('H:i:s') , " File written to " , str_replace('.php', '_excel.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/17html.php b/Examples/17html.php deleted file mode 100644 index 7f48ce3b..00000000 --- a/Examples/17html.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -include "05featuredemo.inc.php"; - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -echo date('H:i:s') , " Write to HTML format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'HTML'); -$objWriter->setSheetIndex(0); -//$objWriter->setImagesRoot('http://www.example.com'); -$objWriter->save(str_replace('.php', '.htm', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/18extendedcalculation.php b/Examples/18extendedcalculation.php deleted file mode 100644 index 202c43e4..00000000 --- a/Examples/18extendedcalculation.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// List functions -echo date('H:i:s') . " List implemented functions\n"; -$objCalc = \PHPExcel\Calculation::getInstance(); -print_r($objCalc->listFunctionNames()); - -// Create new PHPExcel object -echo date('H:i:s') . " Create new PHPExcel object\n"; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Add some data, we will use some formulas here -echo date('H:i:s') . " Add some data\n"; -$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Count:'); - -$objPHPExcel->getActiveSheet()->setCellValue('B1', 'Range 1'); -$objPHPExcel->getActiveSheet()->setCellValue('B2', 2); -$objPHPExcel->getActiveSheet()->setCellValue('B3', 8); -$objPHPExcel->getActiveSheet()->setCellValue('B4', 10); -$objPHPExcel->getActiveSheet()->setCellValue('B5', True); -$objPHPExcel->getActiveSheet()->setCellValue('B6', False); -$objPHPExcel->getActiveSheet()->setCellValue('B7', 'Text String'); -$objPHPExcel->getActiveSheet()->setCellValue('B9', '22'); -$objPHPExcel->getActiveSheet()->setCellValue('B10', 4); -$objPHPExcel->getActiveSheet()->setCellValue('B11', 6); -$objPHPExcel->getActiveSheet()->setCellValue('B12', 12); - -$objPHPExcel->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('C1', 'Range 2'); -$objPHPExcel->getActiveSheet()->setCellValue('C2', 1); -$objPHPExcel->getActiveSheet()->setCellValue('C3', 2); -$objPHPExcel->getActiveSheet()->setCellValue('C4', 2); -$objPHPExcel->getActiveSheet()->setCellValue('C5', 3); -$objPHPExcel->getActiveSheet()->setCellValue('C6', 3); -$objPHPExcel->getActiveSheet()->setCellValue('C7', 3); -$objPHPExcel->getActiveSheet()->setCellValue('C8', '0'); -$objPHPExcel->getActiveSheet()->setCellValue('C9', 4); -$objPHPExcel->getActiveSheet()->setCellValue('C10', 4); -$objPHPExcel->getActiveSheet()->setCellValue('C11', 4); -$objPHPExcel->getActiveSheet()->setCellValue('C12', 4); - -$objPHPExcel->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)'); - -$objPHPExcel->getActiveSheet()->setCellValue('D1', 'Range 3'); -$objPHPExcel->getActiveSheet()->setCellValue('D2', 2); -$objPHPExcel->getActiveSheet()->setCellValue('D3', 3); -$objPHPExcel->getActiveSheet()->setCellValue('D4', 4); - -$objPHPExcel->getActiveSheet()->setCellValue('D5', '=((D2 * D3) + D4) & " should be 10"'); - -$objPHPExcel->getActiveSheet()->setCellValue('E1', 'Other functions'); -$objPHPExcel->getActiveSheet()->setCellValue('E2', '=PI()'); -$objPHPExcel->getActiveSheet()->setCellValue('E3', '=RAND()'); -$objPHPExcel->getActiveSheet()->setCellValue('E4', '=RANDBETWEEN(5, 10)'); - -$objPHPExcel->getActiveSheet()->setCellValue('E14', 'Count of both ranges:'); -$objPHPExcel->getActiveSheet()->setCellValue('F14', '=COUNT(B2:C12)'); - -// Calculated data -echo date('H:i:s') . " Calculated data\n"; -echo 'Value of B14 [=COUNT(B2:B12)]: ' . $objPHPExcel->getActiveSheet()->getCell('B14')->getCalculatedValue() . "\r\n"; - - -// Echo memory peak usage -echo date('H:i:s') . " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB\r\n"; - -// Echo done -echo date('H:i:s') . " Done" , EOL; diff --git a/Examples/19namedrange.php b/Examples/19namedrange.php deleted file mode 100644 index 79c53d60..00000000 --- a/Examples/19namedrange.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:') - ->setCellValue('A2', 'Lastname:') - ->setCellValue('A3', 'Fullname:') - ->setCellValue('B1', 'Maarten') - ->setCellValue('B2', 'Balliauw') - ->setCellValue('B3', '=B1 & " " & B2'); - -// Define named ranges -echo date('H:i:s') , " Define named ranges" , EOL; -$objPHPExcel->addNamedRange( new \PHPExcel\NamedRange('PersonName', $objPHPExcel->getActiveSheet(), 'B1') ); -$objPHPExcel->addNamedRange( new \PHPExcel\NamedRange('PersonLN', $objPHPExcel->getActiveSheet(), 'B2') ); - -// Rename named ranges -echo date('H:i:s') , " Rename named ranges" , EOL; -$objPHPExcel->getNamedRange('PersonName')->setName('PersonFN'); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Person'); - - -// Create a new worksheet, after the default sheet -echo date('H:i:s') , " Create new Worksheet object" , EOL; -$objPHPExcel->createSheet(); - -// Add some data to the second sheet, resembling some different data types -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(1); -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'Firstname:') - ->setCellValue('A2', 'Lastname:') - ->setCellValue('A3', 'Fullname:') - ->setCellValue('B1', '=PersonFN') - ->setCellValue('B2', '=PersonLN') - ->setCellValue('B3', '=PersonFN & " " & PersonLN'); - -// Resolve range -echo date('H:i:s') , " Resolve range" , EOL; -echo 'Cell B1 {=PersonFN}: ' , $objPHPExcel->getActiveSheet()->getCell('B1')->getCalculatedValue() , EOL; -echo 'Cell B3 {=PersonFN & " " & PersonLN}: ' , $objPHPExcel->getActiveSheet()->getCell('B3')->getCalculatedValue() , EOL; -echo 'Cell Person!B1: ' , $objPHPExcel->getActiveSheet()->getCell('Person!B1')->getCalculatedValue() , EOL; - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Person (cloned)'); - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/20readexcel5.php b/Examples/20readexcel5.php deleted file mode 100644 index d276f429..00000000 --- a/Examples/20readexcel5.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -if (!file_exists("14excel5.xls")) { - exit("Please run 14excel5.php first.\n"); -} - -echo date('H:i:s') , " Load workbook from Excel5 file" , EOL; -$callStartTime = microtime(true); - -$objPHPExcel = \PHPExcel\IOFactory::load("14excel5.xls"); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo 'Call time to load Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done reading file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/21pdf.php b/Examples/21pdf.php deleted file mode 100644 index 62bb6e27..00000000 --- a/Examples/21pdf.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -include "05featuredemo.inc.php"; - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Change these values to select the Rendering library that you wish to use -// and its directory location on your server -//$rendererName = \PHPExcel\Settings::PDF_RENDERER_TCPDF; -//$rendererName = \PHPExcel\Settings::PDF_RENDERER_MPDF; -$rendererName = \PHPExcel\Settings::PDF_RENDERER_DOMPDF; -//$rendererLibrary = 'tcPDF5.9'; -//$rendererLibrary = 'mPDF5.4'; -$rendererLibrary = 'domPDF0.6.0beta3'; -$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; - - -echo date('H:i:s') , " Hide grid lines" , EOL; -$objPHPExcel->getActiveSheet()->setShowGridLines(false); - -echo date('H:i:s') , " Set orientation to landscape" , EOL; -$objPHPExcel->getActiveSheet()->getPageSetup()->setOrientation(\PHPExcel\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); - - -echo date('H:i:s') , " Write to PDF format using {$rendererName}" , EOL; - -if (!\PHPExcel\Settings::setPdfRenderer( - $rendererName, - $rendererLibraryPath - )) { - die( - 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . - EOL . - 'at the top of this script as appropriate for your directory structure' - ); -} - - -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'PDF'); -$objWriter->setSheetIndex(0); -$objWriter->save(str_replace('.php', '_'.$rendererName.'.pdf', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo date('H:i:s') , " File written to " , str_replace('.php', '_'.$rendererName.'.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/22heavilyformatted.php b/Examples/22heavilyformatted.php deleted file mode 100644 index 4ac83823..00000000 --- a/Examples/22heavilyformatted.php +++ /dev/null @@ -1,116 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); - -$objPHPExcel->getActiveSheet()->getStyle('A1:T100')->applyFromArray( - array('fill' => array( - 'type' => \PHPExcel\Style\Fill::FILL_SOLID, - 'color' => array('argb' => 'FFCCFFCC') - ), - 'borders' => array( - 'bottom' => array('style' => \PHPExcel\Style\Border::BORDER_THIN), - 'right' => array('style' => \PHPExcel\Style\Border::BORDER_MEDIUM) - ) - ) - ); - -$objPHPExcel->getActiveSheet()->getStyle('C5:R95')->applyFromArray( - array('fill' => array( - 'type' => \PHPExcel\Style\Fill::FILL_SOLID, - 'color' => array('argb' => 'FFFFFF00') - ), - ) - ); - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/23sharedstyles.php b/Examples/23sharedstyles.php deleted file mode 100644 index 20fc8830..00000000 --- a/Examples/23sharedstyles.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0); - -$sharedStyle1 = new \PHPExcel\Style(); -$sharedStyle2 = new \PHPExcel\Style(); - -$sharedStyle1->applyFromArray( - array('fill' => array( - 'type' => \PHPExcel\Style\Fill::FILL_SOLID, - 'color' => array('argb' => 'FFCCFFCC') - ), - 'borders' => array( - 'bottom' => array('style' => \PHPExcel\Style\Border::BORDER_THIN), - 'right' => array('style' => \PHPExcel\Style\Border::BORDER_MEDIUM) - ) - )); - -$sharedStyle2->applyFromArray( - array('fill' => array( - 'type' => \PHPExcel\Style\Fill::FILL_SOLID, - 'color' => array('argb' => 'FFFFFF00') - ), - 'borders' => array( - 'bottom' => array('style' => \PHPExcel\Style\Border::BORDER_THIN), - 'right' => array('style' => \PHPExcel\Style\Border::BORDER_MEDIUM) - ) - )); - -$objPHPExcel->getActiveSheet()->duplicateStyle($sharedStyle1, "A1:T100"); -$objPHPExcel->getActiveSheet()->duplicateStyle($sharedStyle2, "C5:R95"); - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/24readfilter.php b/Examples/24readfilter.php deleted file mode 100644 index 39c077cb..00000000 --- a/Examples/24readfilter.php +++ /dev/null @@ -1,77 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Check prerequisites -if (!file_exists("06largescale.xlsx")) { - exit("Please run 06largescale.php first.\n"); -} - -class MyReadFilter implements \PHPExcel\Reader\IReadFilter -{ - public function readCell($column, $row, $worksheetName = '') { - // Read title row and rows 20 - 30 - if ($row == 1 || ($row >= 20 && $row <= 30)) { - return true; - } - - return false; - } -} - - -echo date('H:i:s') , " Load from Excel2007 file" , EOL; -$objReader = \PHPExcel\IOFactory::createReader('Excel2007'); -$objReader->setReadFilter( new MyReadFilter() ); -$objPHPExcel = $objReader->load("06largescale.xlsx"); - -echo date('H:i:s') , " Remove unnecessary rows" , EOL; -$objPHPExcel->getActiveSheet()->removeRow(2, 18); - -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/25inmemoryimage.php b/Examples/25inmemoryimage.php deleted file mode 100644 index 54c84899..00000000 --- a/Examples/25inmemoryimage.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - -// Generate an image -echo date('H:i:s') , " Generate an image" , EOL; -$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); -$textColor = imagecolorallocate($gdImage, 255, 255, 255); -imagestring($gdImage, 1, 5, 5, 'Created with PHPExcel', $textColor); - -// Add a drawing to the worksheet -echo date('H:i:s') , " Add a drawing to the worksheet" , EOL; -$objDrawing = new \PHPExcel\Worksheet\MemoryDrawing(); -$objDrawing->setName('Sample image'); -$objDrawing->setDescription('Sample image'); -$objDrawing->setImageResource($gdImage); -$objDrawing->setRenderingFunction(\PHPExcel\Worksheet\MemoryDrawing::RENDERING_JPEG); -$objDrawing->setMimeType(\PHPExcel\Worksheet\MemoryDrawing::MIMETYPE_DEFAULT); -$objDrawing->setHeight(36); -$objDrawing->setWorksheet($objPHPExcel->getActiveSheet()); - -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -echo date('H:i:s') , " Write to HTML format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'HTML'); -$objWriter->save(str_replace('.php', '.html', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.html', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/26utf8.php b/Examples/26utf8.php deleted file mode 100644 index ccda5bff..00000000 --- a/Examples/26utf8.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Change these values to select the PDF Rendering library that you wish to use -// and its directory location on your server -//$rendererName = \PHPExcel\Settings::PDF_RENDERER_TCPDF; -//$rendererName = \PHPExcel\Settings::PDF_RENDERER_MPDF; -$rendererName = \PHPExcel\Settings::PDF_RENDERER_DOMPDF; -//$rendererLibrary = 'tcPDF5.9'; -//$rendererLibrary = 'mPDF5.4'; -$rendererLibrary = 'domPDF0.6.0beta3'; -$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; - - -// Read from Excel2007 (.xlsx) template -echo date('H:i:s') , " Load Excel2007 template file" , EOL; -$objReader = \PHPExcel\IOFactory::createReader('Excel2007'); -$objPHPExcel = $objReader->load("templates/26template.xlsx"); - -/** at this point, we could do some manipulations with the template, but we skip this step */ - -// Export to Excel2007 (.xlsx) -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - -// Export to Excel5 (.xls) -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - -// Export to HTML (.html) -echo date('H:i:s') , " Write to HTML format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'HTML'); -$objWriter->save(str_replace('.php', '.htm', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.htm', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - -// Export to PDF (.pdf) -echo date('H:i:s') , " Write to PDF format" , EOL; -try { - if (!\PHPExcel\Settings::setPdfRenderer( - $rendererName, - $rendererLibraryPath - )) { - echo ( - 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . - EOL . - 'at the top of this script as appropriate for your directory structure' . - EOL - ); - } else { - $objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'PDF'); - $objWriter->save(str_replace('.php', '.pdf', __FILE__)); - echo date('H:i:s') , " File written to " , str_replace('.php', '.pdf', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - } -} catch (Exception $e) { - echo date('H:i:s') , ' EXCEPTION: ', $e->getMessage() , EOL; -} - -// Remove first two rows with field headers before exporting to CSV -echo date('H:i:s') , " Removing first two heading rows for CSV export" , EOL; -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->removeRow(1, 2); - -// Export to CSV (.csv) -echo date('H:i:s') , " Write to CSV format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'CSV'); -$objWriter->save(str_replace('.php', '.csv', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - -// Export to CSV with BOM (.csv) -echo date('H:i:s') , " Write to CSV format (with BOM)" , EOL; -$objWriter->setUseBOM(true); -$objWriter->save(str_replace('.php', '-bom.csv', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '-bom.csv', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/27imagesexcel5.php b/Examples/27imagesexcel5.php deleted file mode 100644 index d4ce0cb9..00000000 --- a/Examples/27imagesexcel5.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Read from Excel5 (.xls) template -echo date('H:i:s') , " Load Excel2007 template file" , EOL; -$objReader = \PHPExcel\IOFactory::createReader('Excel5'); -$objPHPExcel = $objReader->load("templates/27template.xls"); - -// Export to Excel2007 (.xlsx) -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - -// Export to Excel5 (.xls) -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/28iterator.php b/Examples/28iterator.php deleted file mode 100644 index c0a26823..00000000 --- a/Examples/28iterator.php +++ /dev/null @@ -1,67 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -if (!file_exists("05featuredemo.xlsx")) { - exit("Please run 05featuredemo.php first." . EOL); -} - -echo date('H:i:s') , " Load from Excel2007 file" , EOL; -$objReader = \PHPExcel\IOFactory::createReader('Excel2007'); -$objPHPExcel = $objReader->load("05featuredemo.xlsx"); - -echo date('H:i:s') , " Iterate worksheets" , EOL; -foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { - echo 'Worksheet - ' , $worksheet->getTitle() , EOL; - - foreach ($worksheet->getRowIterator() as $row) { - echo ' Row number - ' , $row->getRowIndex() , EOL; - - $cellIterator = $row->getCellIterator(); - $cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set - foreach ($cellIterator as $cell) { - if (!is_null($cell)) { - echo ' Cell - ' , $cell->getCoordinate() , ' - ' , $cell->getCalculatedValue() , EOL; - } - } - } -} - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; diff --git a/Examples/29advancedvaluebinder.php b/Examples/29advancedvaluebinder.php deleted file mode 100644 index 69b66ff5..00000000 --- a/Examples/29advancedvaluebinder.php +++ /dev/null @@ -1,183 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Set timezone -echo date('H:i:s') , " Set timezone" , EOL; -date_default_timezone_set('UTC'); - -// Set value binder -echo date('H:i:s') , " Set value binder" , EOL; -\PHPExcel\Cell::setValueBinder( new \PHPExcel\Cell\AdvancedValueBinder() ); - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.") - ->setKeywords("office 2007 openxml php") - ->setCategory("Test result file"); - -// Set default font -echo date('H:i:s') , " Set default font" , EOL; -$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setName('Arial'); -$objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10); - -// Set column widths -echo date('H:i:s') , " Set column widths" , EOL; -$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); -$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(14); - -// Add some data, resembling some different data types -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->getActiveSheet()->setCellValue('A1', 'String value:') - ->setCellValue('B1', 'Mark Baker'); - -$objPHPExcel->getActiveSheet()->setCellValue('A2', 'Numeric value #1:') - ->setCellValue('B2', 12345); - -$objPHPExcel->getActiveSheet()->setCellValue('A3', 'Numeric value #2:') - ->setCellValue('B3', -12.345); - -$objPHPExcel->getActiveSheet()->setCellValue('A4', 'Numeric value #3:') - ->setCellValue('B4', .12345); - -$objPHPExcel->getActiveSheet()->setCellValue('A5', 'Numeric value #4:') - ->setCellValue('B5', '12345'); - -$objPHPExcel->getActiveSheet()->setCellValue('A6', 'Numeric value #5:') - ->setCellValue('B6', '1.2345'); - -$objPHPExcel->getActiveSheet()->setCellValue('A7', 'Numeric value #6:') - ->setCellValue('B7', '.12345'); - -$objPHPExcel->getActiveSheet()->setCellValue('A8', 'Numeric value #7:') - ->setCellValue('B8', '1.234e-5'); - -$objPHPExcel->getActiveSheet()->setCellValue('A9', 'Numeric value #8:') - ->setCellValue('B9', '-1.234e+5'); - -$objPHPExcel->getActiveSheet()->setCellValue('A10', 'Boolean value:') - ->setCellValue('B10', 'TRUE'); - -$objPHPExcel->getActiveSheet()->setCellValue('A11', 'Percentage value #1:') - ->setCellValue('B11', '10%'); - -$objPHPExcel->getActiveSheet()->setCellValue('A12', 'Percentage value #2:') - ->setCellValue('B12', '12.5%'); - -$objPHPExcel->getActiveSheet()->setCellValue('A13', 'Fraction value #1:') - ->setCellValue('B13', '-1/2'); - -$objPHPExcel->getActiveSheet()->setCellValue('A14', 'Fraction value #2:') - ->setCellValue('B14', '3 1/2'); - -$objPHPExcel->getActiveSheet()->setCellValue('A15', 'Fraction value #3:') - ->setCellValue('B15', '-12 3/4'); - -$objPHPExcel->getActiveSheet()->setCellValue('A16', 'Fraction value #4:') - ->setCellValue('B16', '13/4'); - -$objPHPExcel->getActiveSheet()->setCellValue('A17', 'Currency value #1:') - ->setCellValue('B17', '$12345'); - -$objPHPExcel->getActiveSheet()->setCellValue('A18', 'Currency value #2:') - ->setCellValue('B18', '$12345.67'); - -$objPHPExcel->getActiveSheet()->setCellValue('A19', 'Currency value #3:') - ->setCellValue('B19', '$12,345.67'); - -$objPHPExcel->getActiveSheet()->setCellValue('A20', 'Date value #1:') - ->setCellValue('B20', '21 December 1983'); - -$objPHPExcel->getActiveSheet()->setCellValue('A21', 'Date value #2:') - ->setCellValue('B21', '19-Dec-1960'); - -$objPHPExcel->getActiveSheet()->setCellValue('A22', 'Date value #3:') - ->setCellValue('B22', '07/12/1982'); - -$objPHPExcel->getActiveSheet()->setCellValue('A23', 'Date value #4:') - ->setCellValue('B23', '24-11-1950'); - -$objPHPExcel->getActiveSheet()->setCellValue('A24', 'Date value #5:') - ->setCellValue('B24', '17-Mar'); - -$objPHPExcel->getActiveSheet()->setCellValue('A25', 'Time value #1:') - ->setCellValue('B25', '01:30'); - -$objPHPExcel->getActiveSheet()->setCellValue('A26', 'Time value #2:') - ->setCellValue('B26', '01:30:15'); - -$objPHPExcel->getActiveSheet()->setCellValue('A27', 'Date/Time value:') - ->setCellValue('B27', '19-Dec-1960 01:30'); - -$objPHPExcel->getActiveSheet()->setCellValue('A28', 'Formula:') - ->setCellValue('B28', '=SUM(B2:B9)'); - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Advanced value binder'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -// Save Excel5 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/30template.php b/Examples/30template.php deleted file mode 100644 index 97c880d5..00000000 --- a/Examples/30template.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - - -echo date('H:i:s') , " Load from Excel5 template" , EOL; -$objReader = \PHPExcel\IOFactory::createReader('Excel5'); -$objPHPExcel = $objReader->load("templates/30template.xls"); - - - - -echo date('H:i:s') , " Add new data to the template" , EOL; -$data = array(array('title' => 'Excel for dummies', - 'price' => 17.99, - 'quantity' => 2 - ), - array('title' => 'PHP for dummies', - 'price' => 15.99, - 'quantity' => 1 - ), - array('title' => 'Inside OOP', - 'price' => 12.95, - 'quantity' => 1 - ) - ); - -$objPHPExcel->getActiveSheet()->setCellValue('D1', \PHPExcel\Shared\Date::PHPToExcel(time())); - -$baseRow = 5; -foreach($data as $r => $dataRow) { - $row = $baseRow + $r; - $objPHPExcel->getActiveSheet()->insertNewRowBefore($row,1); - - $objPHPExcel->getActiveSheet()->setCellValue('A'.$row, $r+1) - ->setCellValue('B'.$row, $dataRow['title']) - ->setCellValue('C'.$row, $dataRow['price']) - ->setCellValue('D'.$row, $dataRow['quantity']) - ->setCellValue('E'.$row, '=C'.$row.'*D'.$row); -} -$objPHPExcel->getActiveSheet()->removeRow($baseRow-1,1); - - -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/31docproperties_write-xls.php b/Examples/31docproperties_write-xls.php deleted file mode 100644 index 6100db72..00000000 --- a/Examples/31docproperties_write-xls.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$inputFileType = 'Excel5'; -$inputFileName = 'templates/31docproperties.xls'; - - -echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL; -$callStartTime = microtime(true); - -$objPHPExcelReader = \PHPExcel\IOFactory::createReader($inputFileType); -$objPHPExcel = $objPHPExcelReader->load($inputFileName); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Adjust properties" , EOL; -$objPHPExcel->getProperties()->setTitle("Office 95 XLS Test Document") - ->setSubject("Office 95 XLS Test Document") - ->setDescription("Test XLS document, generated using PHPExcel") - ->setKeywords("office 95 biff php"); - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; - - -echo EOL; -// Reread File -echo date('H:i:s') , " Reread Excel5 file" , EOL; -$objPHPExcelRead = \PHPExcel\IOFactory::load(str_replace('.php', '.xls', __FILE__)); - -// Set properties -echo date('H:i:s') , " Get properties" , EOL; - -echo 'Core Properties:' , EOL; -echo ' Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL; -echo ' Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' , - date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL; -echo ' Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL; -echo ' Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' , - date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL; -echo ' Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL; -echo ' Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL; -echo ' Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL; -echo ' Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL; - - -echo 'Extended (Application) Properties:' , EOL; -echo ' Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL; -echo ' Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL; -echo ' Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL; - - -echo 'Custom Properties:' , EOL; -$customProperties = $objPHPExcel->getProperties()->getCustomProperties(); -foreach($customProperties as $customProperty) { - $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty); - $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty); - echo ' ' , $customProperty , ' - (' , $propertyType , ') - '; - if ($propertyType == \PHPExcel\Document\Properties::PROPERTY_TYPE_DATE) { - echo date('d-M-Y H:i:s',$propertyValue) , EOL; - } elseif ($propertyType == \PHPExcel\Document\Properties::PROPERTY_TYPE_BOOLEAN) { - echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL; - } else { - echo $propertyValue , EOL; - } -} - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; diff --git a/Examples/31docproperties_write.php b/Examples/31docproperties_write.php deleted file mode 100644 index b6ee0ff1..00000000 --- a/Examples/31docproperties_write.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$inputFileType = 'Excel2007'; -$inputFileName = 'templates/31docproperties.xlsx'; - - -echo date('H:i:s') , " Load Tests from $inputFileType file" , EOL; -$callStartTime = microtime(true); - -$objPHPExcelReader = \PHPExcel\IOFactory::createReader($inputFileType); -$objPHPExcel = $objPHPExcelReader->load($inputFileName); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Adjust properties" , EOL; -$objPHPExcel->getProperties()->setTitle("Office 2007 XLSX Test Document") - ->setSubject("Office 2007 XLSX Test Document") - ->setDescription("Test XLSX document, generated using PHPExcel") - ->setKeywords("office 2007 openxml php"); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " . (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; - - -echo EOL; -// Reread File -echo date('H:i:s') , " Reread Excel2007 file" , EOL; -$objPHPExcelRead = \PHPExcel\IOFactory::load(str_replace('.php', '.xlsx', __FILE__)); - -// Set properties -echo date('H:i:s') , " Get properties" , EOL; - -echo 'Core Properties:' , EOL; -echo ' Created by - ' , $objPHPExcel->getProperties()->getCreator() , EOL; -echo ' Created on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getCreated()) , ' at ' , - date('H:i:s',$objPHPExcel->getProperties()->getCreated()) , EOL; -echo ' Last Modified by - ' , $objPHPExcel->getProperties()->getLastModifiedBy() , EOL; -echo ' Last Modified on - ' , date('d-M-Y',$objPHPExcel->getProperties()->getModified()) , ' at ' , - date('H:i:s',$objPHPExcel->getProperties()->getModified()) , EOL; -echo ' Title - ' , $objPHPExcel->getProperties()->getTitle() , EOL; -echo ' Subject - ' , $objPHPExcel->getProperties()->getSubject() , EOL; -echo ' Description - ' , $objPHPExcel->getProperties()->getDescription() , EOL; -echo ' Keywords: - ' , $objPHPExcel->getProperties()->getKeywords() , EOL; - - -echo 'Extended (Application) Properties:' , EOL; -echo ' Category - ' , $objPHPExcel->getProperties()->getCategory() , EOL; -echo ' Company - ' , $objPHPExcel->getProperties()->getCompany() , EOL; -echo ' Manager - ' , $objPHPExcel->getProperties()->getManager() , EOL; - - -echo 'Custom Properties:' , EOL; -$customProperties = $objPHPExcel->getProperties()->getCustomProperties(); -foreach($customProperties as $customProperty) { - $propertyValue = $objPHPExcel->getProperties()->getCustomPropertyValue($customProperty); - $propertyType = $objPHPExcel->getProperties()->getCustomPropertyType($customProperty); - echo ' ' , $customProperty , ' - (' , $propertyType , ') - '; - if ($propertyType == \PHPExcel\Document\Properties::PROPERTY_TYPE_DATE) { - echo date('d-M-Y H:i:s',$propertyValue) , EOL; - } elseif ($propertyType == \PHPExcel\Document\Properties::PROPERTY_TYPE_BOOLEAN) { - echo (($propertyValue) ? 'TRUE' : 'FALSE') , EOL; - } else { - echo $propertyValue , EOL; - } -} - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) . " MB" , EOL; diff --git a/Examples/32chartreadwrite.php b/Examples/32chartreadwrite.php deleted file mode 100644 index 97a72a9d..00000000 --- a/Examples/32chartreadwrite.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -$inputFileType = 'Excel2007'; -$inputFileNames = 'templates/32readwrite*[0-9].xlsx'; - -if ((isset($argc)) && ($argc > 1)) { - $inputFileNames = array(); - for($i = 1; $i < $argc; ++$i) { - $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; - } -} else { - $inputFileNames = glob($inputFileNames); -} -foreach($inputFileNames as $inputFileName) { - $inputFileNameShort = basename($inputFileName); - - if (!file_exists($inputFileName)) { - echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; - continue; - } - - echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; - - $objReader = \PHPExcel\IOFactory::createReader($inputFileType); - $objReader->setIncludeCharts(TRUE); - $objPHPExcel = $objReader->load($inputFileName); - - - echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; - foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { - $sheetName = $worksheet->getTitle(); - echo 'Worksheet: ' , $sheetName , EOL; - - $chartNames = $worksheet->getChartNames(); - if(empty($chartNames)) { - echo ' There are no charts in this worksheet' , EOL; - } else { - natsort($chartNames); - foreach($chartNames as $i => $chartName) { - $chart = $worksheet->getChartByName($chartName); - if (!is_null($chart->getTitle())) { - $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; - } else { - $caption = 'Untitled'; - } - echo ' ' , $chartName , ' - ' , $caption , EOL; - echo str_repeat(' ',strlen($chartName)+3); - $groupCount = $chart->getPlotArea()->getPlotGroupCount(); - if ($groupCount == 1) { - $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); - echo ' ' , $chartType , EOL; - } else { - $chartTypes = array(); - for($i = 0; $i < $groupCount; ++$i) { - $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); - } - $chartTypes = array_unique($chartTypes); - if (count($chartTypes) == 1) { - $chartType = 'Multiple Plot ' . array_pop($chartTypes); - echo ' ' , $chartType , EOL; - } elseif (count($chartTypes) == 0) { - echo ' *** Type not yet implemented' , EOL; - } else { - echo ' Combination Chart' , EOL; - } - } - } - } - } - - - $outputFileName = basename($inputFileName); - - echo date('H:i:s') , " Write Tests to Excel2007 file " , EOL; - $objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); - $objWriter->setIncludeCharts(TRUE); - $objWriter->save($outputFileName); - echo date('H:i:s') , " File written to " , $outputFileName , EOL; - - $objPHPExcel->disconnectWorksheets(); - unset($objPHPExcel); -} - -// Echo memory peak usage -echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-area.php b/Examples/33chartcreate-area.php deleted file mode 100644 index 9d50b20e..00000000 --- a/Examples/33chartcreate-area.php +++ /dev/null @@ -1,142 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_AREACHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues // plotValues -); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_TOPRIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test %age-Stacked Area Chart'); -$yAxisLabel = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('A7'); -$chart->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-bar-stacked.php b/Examples/33chartcreate-bar-stacked.php deleted file mode 100644 index aa67c5cc..00000000 --- a/Examples/33chartcreate-bar-stacked.php +++ /dev/null @@ -1,145 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_BARCHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_STACKED, // plotGrouping - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues // plotValues -); -// Set additional dataseries parameters -// Make it a horizontal bar rather than a vertical column graph -$series->setPlotDirection(\PHPExcel\Chart\DataSeries::DIRECTION_BAR); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Chart'); -$yAxisLabel = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('A7'); -$chart->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-bar.php b/Examples/33chartcreate-bar.php deleted file mode 100644 index f7a9aac9..00000000 --- a/Examples/33chartcreate-bar.php +++ /dev/null @@ -1,145 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_BARCHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues // plotValues -); -// Set additional dataseries parameters -// Make it a horizontal bar rather than a vertical column graph -$series->setPlotDirection(\PHPExcel\Chart\DataSeries::DIRECTION_BAR); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Bar Chart'); -$yAxisLabel = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('A7'); -$chart->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-column-2.php b/Examples/33chartcreate-column-2.php deleted file mode 100644 index 2d32bbd6..00000000 --- a/Examples/33chartcreate-column-2.php +++ /dev/null @@ -1,154 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', '', 'Budget', 'Forecast', 'Actual'), - array('2010', 'Q1', 47, 44, 43 ), - array('', 'Q2', 56, 53, 50 ), - array('', 'Q3', 52, 46, 45 ), - array('', 'Q4', 45, 40, 40 ), - array('2011', 'Q1', 51, 42, 46 ), - array('', 'Q2', 53, 58, 56 ), - array('', 'Q3', 64, 66, 69 ), - array('', 'Q4', 54, 55, 56 ), - array('2012', 'Q1', 49, 52, 58 ), - array('', 'Q2', 68, 73, 86 ), - array('', 'Q3', 72, 78, 0 ), - array('', 'Q4', 50, 60, 0 ), - ) -); - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 'Budget' - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 'Forecast' - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1), // 'Actual' -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$B$13', NULL, 12), // Q1 to Q4 for 2010 to 2012 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$13', NULL, 12), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_BARCHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues // plotValues -); -// Set additional dataseries parameters -// Make it a vertical column rather than a horizontal bar graph -$series->setPlotDirection(\PHPExcel\Chart\DataSeries::DIRECTION_COL); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_BOTTOM, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Grouped Column Chart'); -$xAxisLabel = new \PHPExcel\Chart\Title('Financial Period'); -$yAxisLabel = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - $xAxisLabel, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('G2'); -$chart->setBottomRightPosition('P20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-column.php b/Examples/33chartcreate-column.php deleted file mode 100644 index 959feb24..00000000 --- a/Examples/33chartcreate-column.php +++ /dev/null @@ -1,145 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_BARCHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues // plotValues -); -// Set additional dataseries parameters -// Make it a vertical column rather than a horizontal bar graph -$series->setPlotDirection(\PHPExcel\Chart\DataSeries::DIRECTION_COL); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Column Chart'); -$yAxisLabel = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('A7'); -$chart->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-composite.php b/Examples/33chartcreate-composite.php deleted file mode 100644 index 53e97388..00000000 --- a/Examples/33chartcreate-composite.php +++ /dev/null @@ -1,203 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 'Rainfall (mm)', 'Temperature (°F)', 'Humidity (%)'), - array('Jan', 78, 52, 61), - array('Feb', 64, 54, 62), - array('Mar', 62, 57, 63), - array('Apr', 21, 62, 59), - array('May', 11, 75, 60), - array('Jun', 1, 75, 57), - array('Jul', 1, 79, 56), - array('Aug', 1, 79, 59), - array('Sep', 10, 75, 60), - array('Oct', 40, 68, 63), - array('Nov', 69, 62, 64), - array('Dec', 89, 57, 66), - ) -); - - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels1 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // Temperature -); -$dataSeriesLabels2 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // Rainfall -); -$dataSeriesLabels3 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // Humidity -); - -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec -); - - -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues1 = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$13', NULL, 12), -); - -// Build the dataseries -$series1 = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_BARCHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping - range(0, count($dataSeriesValues1)-1), // plotOrder - $dataSeriesLabels1, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues1 // plotValues -); -// Set additional dataseries parameters -// Make it a vertical column rather than a horizontal bar graph -$series1->setPlotDirection(\PHPExcel\Chart\DataSeries::DIRECTION_COL); - - -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues2 = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12), -); - -// Build the dataseries -$series2 = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_LINECHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping - range(0, count($dataSeriesValues2)-1), // plotOrder - $dataSeriesLabels2, // plotLabel - NULL, // plotCategory - $dataSeriesValues2 // plotValues -); - - -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues3 = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12), -); - -// Build the dataseries -$series3 = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_AREACHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping - range(0, count($dataSeriesValues2)-1), // plotOrder - $dataSeriesLabels3, // plotLabel - NULL, // plotCategory - $dataSeriesValues3 // plotValues -); - - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series1, $series2, $series3)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Average Weather Chart for Crete'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - NULL // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('F2'); -$chart->setBottomRightPosition('O16'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-line.php b/Examples/33chartcreate-line.php deleted file mode 100644 index d5df605e..00000000 --- a/Examples/33chartcreate-line.php +++ /dev/null @@ -1,142 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_LINECHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_STACKED, // plotGrouping - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues // plotValues -); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_TOPRIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Stacked Line Chart'); -$yAxisLabel = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('A7'); -$chart->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-multiple-charts.php b/Examples/33chartcreate-multiple-charts.php deleted file mode 100644 index 6ddfd377..00000000 --- a/Examples/33chartcreate-multiple-charts.php +++ /dev/null @@ -1,220 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels1 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues1 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues1 = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series1 = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_AREACHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping - range(0, count($dataSeriesValues1)-1), // plotOrder - $dataSeriesLabels1, // plotLabel - $xAxisTickValues1, // plotCategory - $dataSeriesValues1 // plotValues -); - -// Set the series in the plot area -$plotArea1 = new \PHPExcel\Chart\PlotArea(NULL, array($series1)); -// Set the chart legend -$legend1 = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_TOPRIGHT, NULL, false); - -$title1 = new \PHPExcel\Chart\Title('Test %age-Stacked Area Chart'); -$yAxisLabel1 = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart1 = new \PHPExcel\Chart( - 'chart1', // name - $title1, // title - $legend1, // legend - $plotArea1, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel1 // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart1->setTopLeftPosition('A7'); -$chart1->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart1); - - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels2 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues2 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues2 = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series2 = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_BARCHART, // plotType - \PHPExcel\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping - range(0, count($dataSeriesValues2)-1), // plotOrder - $dataSeriesLabels2, // plotLabel - $xAxisTickValues2, // plotCategory - $dataSeriesValues2 // plotValues -); -// Set additional dataseries parameters -// Make it a vertical column rather than a horizontal bar graph -$series2->setPlotDirection(\PHPExcel\Chart\DataSeries::DIRECTION_COL); - -// Set the series in the plot area -$plotArea2 = new \PHPExcel\Chart\PlotArea(NULL, array($series2)); -// Set the chart legend -$legend2 = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title2 = new \PHPExcel\Chart\Title('Test Column Chart'); -$yAxisLabel2 = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart2 = new \PHPExcel\Chart( - 'chart2', // name - $title2, // title - $legend2, // legend - $plotArea2, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel2 // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart2->setTopLeftPosition('I7'); -$chart2->setBottomRightPosition('P20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart2); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-pie.php b/Examples/33chartcreate-pie.php deleted file mode 100644 index 0113d4d0..00000000 --- a/Examples/33chartcreate-pie.php +++ /dev/null @@ -1,215 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels1 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues1 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues1 = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), -); - -// Build the dataseries -$series1 = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_PIECHART, // plotType - NULL, // plotGrouping (Pie charts don't have any grouping) - range(0, count($dataSeriesValues1)-1), // plotOrder - $dataSeriesLabels1, // plotLabel - $xAxisTickValues1, // plotCategory - $dataSeriesValues1 // plotValues -); - -// Set up a layout object for the Pie chart -$layout1 = new \PHPExcel\Chart\Layout(); -$layout1->setShowVal(TRUE); -$layout1->setShowPercent(TRUE); - -// Set the series in the plot area -$plotArea1 = new \PHPExcel\Chart\PlotArea($layout1, array($series1)); -// Set the chart legend -$legend1 = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title1 = new \PHPExcel\Chart\Title('Test Pie Chart'); - - -// Create the chart -$chart1 = new \PHPExcel\Chart( - 'chart1', // name - $title1, // title - $legend1, // legend - $plotArea1, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - NULL // yAxisLabel - Pie charts don't have a Y-Axis -); - -// Set the position where the chart should appear in the worksheet -$chart1->setTopLeftPosition('A7'); -$chart1->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart1); - - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels2 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues2 = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues2 = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), -); - -// Build the dataseries -$series2 = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_DONUTCHART, // plotType - NULL, // plotGrouping (Donut charts don't have any grouping) - range(0, count($dataSeriesValues2)-1), // plotOrder - $dataSeriesLabels2, // plotLabel - $xAxisTickValues2, // plotCategory - $dataSeriesValues2 // plotValues -); - -// Set up a layout object for the Pie chart -$layout2 = new \PHPExcel\Chart\Layout(); -$layout2->setShowVal(TRUE); -$layout2->setShowCatName(TRUE); - -// Set the series in the plot area -$plotArea2 = new \PHPExcel\Chart\PlotArea($layout2, array($series2)); - -$title2 = new \PHPExcel\Chart\Title('Test Donut Chart'); - - -// Create the chart -$chart2 = new \PHPExcel\Chart( - 'chart2', // name - $title2, // title - NULL, // legend - $plotArea2, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - NULL // yAxisLabel - Like Pie charts, Donut charts don't have a Y-Axis -); - -// Set the position where the chart should appear in the worksheet -$chart2->setTopLeftPosition('I7'); -$chart2->setBottomRightPosition('P20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart2); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-radar.php b/Examples/33chartcreate-radar.php deleted file mode 100644 index 216dc223..00000000 --- a/Examples/33chartcreate-radar.php +++ /dev/null @@ -1,155 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Jan', 47, 45, 71), - array('Feb', 56, 73, 86), - array('Mar', 52, 61, 69), - array('Apr', 40, 52, 60), - array('May', 42, 55, 71), - array('Jun', 58, 63, 76), - array('Jul', 53, 61, 89), - array('Aug', 46, 69, 85), - array('Sep', 62, 75, 81), - array('Oct', 51, 70, 96), - array('Nov', 55, 66, 89), - array('Dec', 68, 62, 0), - ) -); - - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', NULL, 12), // Jan to Dec -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', NULL, 12), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', NULL, 12), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_RADARCHART, // plotType - NULL, // plotGrouping (Radar charts don't have any grouping) - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues, // plotValues - NULL, // plotDirection - NULL, // smooth line - \PHPExcel\Chart\DataSeries::STYLE_MARKER // plotStyle -); - -// Set up a layout object for the Pie chart -$layout = new \PHPExcel\Chart\Layout(); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea($layout, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Radar Chart'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - NULL // yAxisLabel - Radar charts don't have a Y-Axis -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('F2'); -$chart->setBottomRightPosition('M15'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-scatter.php b/Examples/33chartcreate-scatter.php deleted file mode 100644 index 299c9ca2..00000000 --- a/Examples/33chartcreate-scatter.php +++ /dev/null @@ -1,139 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('', 2010, 2011, 2012), - array('Q1', 12, 15, 21), - array('Q2', 56, 73, 86), - array('Q3', 52, 61, 69), - array('Q4', 30, 32, 0), - ) -); - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), // 2010 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), // 2011 - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), // 2012 -); -// Set the X-Axis Labels -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', NULL, 4), // Q1 to Q4 -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', NULL, 4), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', NULL, 4), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_SCATTERCHART, // plotType - NULL, // plotGrouping (Scatter charts don't have any grouping) - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues, // plotValues - NULL, // plotDirection - NULL, // smooth line - \PHPExcel\Chart\DataSeries::STYLE_LINEMARKER // plotStyle -); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_TOPRIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Scatter Chart'); -$yAxisLabel = new \PHPExcel\Chart\Title('Value ($k)'); - - -// Create the chart -$chart = new \PHPExcel\Chart( - 'chart1', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - NULL, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('A7'); -$chart->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/33chartcreate-stock.php b/Examples/33chartcreate-stock.php deleted file mode 100644 index fc2ba5c6..00000000 --- a/Examples/33chartcreate-stock.php +++ /dev/null @@ -1,151 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array('Counts', 'Max', 'Min', 'Min Threshold', 'Max Threshold' ), - array(10, 10, 5, 0, 50 ), - array(30, 20, 10, 0, 50 ), - array(20, 30, 15, 0, 50 ), - array(40, 10, 0, 0, 50 ), - array(100, 40, 5, 0, 50 ), - ), null, 'A1', true -); -$objWorksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(PHPExcel\Style\NumberFormat::FORMAT_NUMBER_00); - - -// Set the Labels for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesLabels = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$B$1', NULL, 1), //Max / Open - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$C$1', NULL, 1), //Min / Close - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$D$1', NULL, 1), //Min Threshold / Min - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$E$1', NULL, 1), //Max Threshold / Max -); -// Set the X-Axis Labels -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$xAxisTickValues = array( - new \PHPExcel\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$6', NULL, 5), // Counts -); -// Set the Data values for each data series we want to plot -// Datatype -// Cell reference for data -// Format Code -// Number of datapoints in series -// Data values -// Data Marker -$dataSeriesValues = array( - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$6', NULL, 5), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$6', NULL, 5), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$6', NULL, 5), - new \PHPExcel\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$6', NULL, 5), -); - -// Build the dataseries -$series = new \PHPExcel\Chart\DataSeries( - \PHPExcel\Chart\DataSeries::TYPE_STOCKCHART, // plotType - null, // plotGrouping - if we set this to not null, then xlsx throws error - range(0, count($dataSeriesValues)-1), // plotOrder - $dataSeriesLabels, // plotLabel - $xAxisTickValues, // plotCategory - $dataSeriesValues // plotValues -); - -// Set the series in the plot area -$plotArea = new \PHPExcel\Chart\PlotArea(NULL, array($series)); -// Set the chart legend -$legend = new \PHPExcel\Chart\Legend(\PHPExcel\Chart\Legend::POSITION_RIGHT, NULL, false); - -$title = new \PHPExcel\Chart\Title('Test Stock Chart'); -$xAxisLabel = new \PHPExcel\Chart\Title('Counts'); -$yAxisLabel = new \PHPExcel\Chart\Title('Values'); - -// Create the chart -$chart = new \PHPExcel\Chart( - 'stock-chart', // name - $title, // title - $legend, // legend - $plotArea, // plotArea - true, // plotVisibleOnly - 0, // displayBlanksAs - $xAxisLabel, // xAxisLabel - $yAxisLabel // yAxisLabel -); - -// Set the position where the chart should appear in the worksheet -$chart->setTopLeftPosition('A7'); -$chart->setBottomRightPosition('H20'); - -// Add the chart to the worksheet -$objWorksheet->addChart($chart); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$filename = str_replace('.php', '.xlsx', __FILE__); -if(file_exists($filename)) { - unlink($filename); -} -$objWriter->save($filename); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/34chartupdate.php b/Examples/34chartupdate.php deleted file mode 100644 index 94ed373e..00000000 --- a/Examples/34chartupdate.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -if (!file_exists("33chartcreate-bar.xlsx")) { - exit("Please run 33chartcreate-bar.php first." . EOL); -} - -echo date('H:i:s') , " Load from Excel2007 file" , EOL; -$objReader = \PHPExcel\IOFactory::createReader("Excel2007"); -$objReader->setIncludeCharts(TRUE); -$objPHPExcel = $objReader->load("33chartcreate-bar.xlsx"); - - -echo date('H:i:s') , " Update cell data values that are displayed in the chart" , EOL; -$objWorksheet = $objPHPExcel->getActiveSheet(); -$objWorksheet->fromArray( - array( - array(50-12, 50-15, 50-21), - array(50-56, 50-73, 50-86), - array(50-52, 50-61, 50-69), - array(50-30, 50-32, 50), - ), - NULL, - 'B2' -); - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->setIncludeCharts(TRUE); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/35chartrender.php b/Examples/35chartrender.php deleted file mode 100644 index 26b591c7..00000000 --- a/Examples/35chartrender.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Change these values to select the Rendering library that you wish to use -// and its directory location on your server -$rendererName = PHPExcel\Settings::CHART_RENDERER_JPGRAPH; -$rendererLibrary = 'jpgraph3.5.0b1/src/'; -$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; - - -if (!PHPExcel\Settings::setChartRenderer( - $rendererName, - $rendererLibraryPath - )) { - die( - 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . - EOL . - 'at the top of this script as appropriate for your directory structure' - ); -} - - -$inputFileType = 'Excel2007'; -$inputFileNames = 'templates/32readwrite*[0-9].xlsx'; - - if ((isset($argc)) && ($argc > 1)) { - $inputFileNames = array(); - for($i = 1; $i < $argc; ++$i) { - $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; - } -} else { - $inputFileNames = glob($inputFileNames); -} -foreach($inputFileNames as $inputFileName) { - $inputFileNameShort = basename($inputFileName); - - if (!file_exists($inputFileName)) { - echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; - continue; - } - - echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; - - $objReader = \PHPExcel\IOFactory::createReader($inputFileType); - $objReader->setIncludeCharts(TRUE); - $objPHPExcel = $objReader->load($inputFileName); - - - echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; - foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { - $sheetName = $worksheet->getTitle(); - echo 'Worksheet: ' , $sheetName , EOL; - - $chartNames = $worksheet->getChartNames(); - if(empty($chartNames)) { - echo ' There are no charts in this worksheet' , EOL; - } else { - natsort($chartNames); - foreach($chartNames as $i => $chartName) { - $chart = $worksheet->getChartByName($chartName); - if (!is_null($chart->getTitle())) { - $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; - } else { - $caption = 'Untitled'; - } - echo ' ' , $chartName , ' - ' , $caption , EOL; - echo str_repeat(' ',strlen($chartName)+3); - - $jpegFile = '35'.str_replace('.xlsx', '.jpg', substr($inputFileNameShort,2)); - if (file_exists($jpegFile)) { - unlink($jpegFile); - } - try { - $chart->render($jpegFile); - } catch (Exception $e) { - echo 'Error rendering chart: ',$e->getMessage(); - } - } - } - } - - - $objPHPExcel->disconnectWorksheets(); - unset($objPHPExcel); -} - -// Echo memory peak usage -echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done rendering charts as images" , EOL; -echo 'Image files have been created in ' , getcwd() , EOL; diff --git a/Examples/36chartreadwriteHTML.php b/Examples/36chartreadwriteHTML.php deleted file mode 100644 index 4eb8db17..00000000 --- a/Examples/36chartreadwriteHTML.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Change these values to select the Rendering library that you wish to use -// and its directory location on your server -$rendererName = PHPExcel\Settings::CHART_RENDERER_JPGRAPH; -$rendererLibrary = 'jpgraph3.5.0b1/src/'; -$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; - - -if (!PHPExcel\Settings::setChartRenderer( - $rendererName, - $rendererLibraryPath - )) { - die( - 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . - EOL . - 'at the top of this script as appropriate for your directory structure' - ); -} - - -$inputFileType = 'Excel2007'; -$inputFileNames = 'templates/36write*.xlsx'; - -if ((isset($argc)) && ($argc > 1)) { - $inputFileNames = array(); - for($i = 1; $i < $argc; ++$i) { - $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; - } -} else { - $inputFileNames = glob($inputFileNames); -} -foreach($inputFileNames as $inputFileName) { - $inputFileNameShort = basename($inputFileName); - - if (!file_exists($inputFileName)) { - echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; - continue; - } - - echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; - - $objReader = \PHPExcel\IOFactory::createReader($inputFileType); - $objReader->setIncludeCharts(TRUE); - $objPHPExcel = $objReader->load($inputFileName); - - - echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; - foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { - $sheetName = $worksheet->getTitle(); - echo 'Worksheet: ' , $sheetName , EOL; - - $chartNames = $worksheet->getChartNames(); - if(empty($chartNames)) { - echo ' There are no charts in this worksheet' , EOL; - } else { - natsort($chartNames); - foreach($chartNames as $i => $chartName) { - $chart = $worksheet->getChartByName($chartName); - if (!is_null($chart->getTitle())) { - $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; - } else { - $caption = 'Untitled'; - } - echo ' ' , $chartName , ' - ' , $caption , EOL; - echo str_repeat(' ',strlen($chartName)+3); - $groupCount = $chart->getPlotArea()->getPlotGroupCount(); - if ($groupCount == 1) { - $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); - echo ' ' , $chartType , EOL; - } else { - $chartTypes = array(); - for($i = 0; $i < $groupCount; ++$i) { - $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); - } - $chartTypes = array_unique($chartTypes); - if (count($chartTypes) == 1) { - $chartType = 'Multiple Plot ' . array_pop($chartTypes); - echo ' ' , $chartType , EOL; - } elseif (count($chartTypes) == 0) { - echo ' *** Type not yet implemented' , EOL; - } else { - echo ' Combination Chart' , EOL; - } - } - } - } - } - - - $outputFileName = str_replace('.xlsx', '.html', basename($inputFileName)); - - echo date('H:i:s') , " Write Tests to HTML file " , EOL; - $objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'HTML'); - $objWriter->setIncludeCharts(TRUE); - $objWriter->save($outputFileName); - echo date('H:i:s') , " File written to " , $outputFileName , EOL; - - $objPHPExcel->disconnectWorksheets(); - unset($objPHPExcel); -} - -// Echo memory peak usage -echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/36chartreadwritePDF.php b/Examples/36chartreadwritePDF.php deleted file mode 100644 index 8e47859d..00000000 --- a/Examples/36chartreadwritePDF.php +++ /dev/null @@ -1,145 +0,0 @@ -<?php - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Change these values to select the Rendering library that you wish to use -// for PDF files, and its directory location on your server -//$rendererName = PHPExcel\Settings::PDF_RENDERER_TCPDF; -$rendererName = PHPExcel\Settings::PDF_RENDERER_MPDF; -//$rendererName = PHPExcel\Settings::PDF_RENDERER_DOMPDF; -//$rendererLibrary = 'tcPDF5.9'; -$rendererLibrary = 'mPDF5.4'; -//$rendererLibrary = 'domPDF0.6.0beta3'; -$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; - - -if (!PHPExcel\Settings::setPdfRenderer( - $rendererName, - $rendererLibraryPath - )) { - die( - 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . - EOL . - 'at the top of this script as appropriate for your directory structure' - ); -} - - -// Change these values to select the Rendering library that you wish to use -// for Chart images, and its directory location on your server -$rendererName = PHPExcel\Settings::CHART_RENDERER_JPGRAPH; -$rendererLibrary = 'jpgraph3.5.0b1/src/'; -$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; - - -if (!PHPExcel\Settings::setChartRenderer( - $rendererName, - $rendererLibraryPath - )) { - die( - 'NOTICE: Please set the $rendererName and $rendererLibraryPath values' . - EOL . - 'at the top of this script as appropriate for your directory structure' - ); -} - - -$inputFileType = 'Excel2007'; -$inputFileNames = 'templates/36write*.xlsx'; - -if ((isset($argc)) && ($argc > 1)) { - $inputFileNames = array(); - for($i = 1; $i < $argc; ++$i) { - $inputFileNames[] = dirname(__FILE__) . '/templates/' . $argv[$i]; - } -} else { - $inputFileNames = glob($inputFileNames); -} -foreach($inputFileNames as $inputFileName) { - $inputFileNameShort = basename($inputFileName); - - if (!file_exists($inputFileName)) { - echo date('H:i:s') , " File " , $inputFileNameShort , ' does not exist' , EOL; - continue; - } - - echo date('H:i:s') , " Load Test from $inputFileType file " , $inputFileNameShort , EOL; - - $objReader = \PHPExcel\IOFactory::createReader($inputFileType); - $objReader->setIncludeCharts(TRUE); - $objPHPExcel = $objReader->load($inputFileName); - - - echo date('H:i:s') , " Iterate worksheets looking at the charts" , EOL; - foreach ($objPHPExcel->getWorksheetIterator() as $worksheet) { - $sheetName = $worksheet->getTitle(); - echo 'Worksheet: ' , $sheetName , EOL; - - $chartNames = $worksheet->getChartNames(); - if(empty($chartNames)) { - echo ' There are no charts in this worksheet' , EOL; - } else { - natsort($chartNames); - foreach($chartNames as $i => $chartName) { - $chart = $worksheet->getChartByName($chartName); - if (!is_null($chart->getTitle())) { - $caption = '"' . implode(' ',$chart->getTitle()->getCaption()) . '"'; - } else { - $caption = 'Untitled'; - } - echo ' ' , $chartName , ' - ' , $caption , EOL; - echo str_repeat(' ',strlen($chartName)+3); - $groupCount = $chart->getPlotArea()->getPlotGroupCount(); - if ($groupCount == 1) { - $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); - echo ' ' , $chartType , EOL; - } else { - $chartTypes = array(); - for($i = 0; $i < $groupCount; ++$i) { - $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); - } - $chartTypes = array_unique($chartTypes); - if (count($chartTypes) == 1) { - $chartType = 'Multiple Plot ' . array_pop($chartTypes); - echo ' ' , $chartType , EOL; - } elseif (count($chartTypes) == 0) { - echo ' *** Type not yet implemented' , EOL; - } else { - echo ' Combination Chart' , EOL; - } - } - } - } - } - - - $outputFileName = str_replace('.xlsx', '.pdf', basename($inputFileName)); - - echo date('H:i:s') , " Write Tests to HTML file " , EOL; - $objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'PDF'); - $objWriter->setIncludeCharts(TRUE); - $objWriter->save($outputFileName); - echo date('H:i:s') , " File written to " , $outputFileName , EOL; - - $objPHPExcel->disconnectWorksheets(); - unset($objPHPExcel); -} - -// Echo memory peak usage -echo date('H:i:s') , ' Peak memory usage: ' , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/37page_layout_view.php b/Examples/37page_layout_view.php deleted file mode 100644 index 4e121cd9..00000000 --- a/Examples/37page_layout_view.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("PHPOffice") - ->setLastModifiedBy("PHPOffice") - ->setTitle("PHPExcel Test Document") - ->setSubject("PHPExcel Test Document") - ->setDescription("Test document for PHPExcel, generated using PHP classes.") - ->setKeywords("Office PHPExcel php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!'); - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - -// Set the page layout view as page layout -$objPHPExcel->getActiveSheet()->getSheetView()->setView(PHPExcel\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT); - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -// Save Excel5 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/38cloneWorksheet.php b/Examples/38cloneWorksheet.php deleted file mode 100644 index 5e84d80a..00000000 --- a/Examples/38cloneWorksheet.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("PHPExcel Test Document") - ->setSubject("PHPExcel Test Document") - ->setDescription("Test document for PHPExcel, generated using PHP classes.") - ->setKeywords("office PHPExcel php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A1', 'Hello') - ->setCellValue('B2', 'world!') - ->setCellValue('C1', 'Hello') - ->setCellValue('D2', 'world!'); - -// Miscellaneous glyphs, UTF-8 -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A4', 'Miscellaneous glyphs') - ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); - - -$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld"); -$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); -$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); - - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet()->setTitle('Simple'); - - -// Clone worksheet -echo date('H:i:s') , " Clone worksheet" , EOL; -$clonedSheet = clone $objPHPExcel->getActiveSheet(); -$clonedSheet - ->setCellValue('A1', 'Goodbye') - ->setCellValue('A2', 'cruel') - ->setCellValue('C1', 'Goodbye') - ->setCellValue('C2', 'cruel'); - -// Rename cloned worksheet -echo date('H:i:s') , " Rename cloned worksheet" , EOL; -$clonedSheet->setTitle('Simple Clone'); -$objPHPExcel->addSheet($clonedSheet); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/39dropdown.php b/Examples/39dropdown.php deleted file mode 100644 index f7068be0..00000000 --- a/Examples/39dropdown.php +++ /dev/null @@ -1,175 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties() - ->setCreator("PHPOffice") - ->setLastModifiedBy("PHPOffice") - ->setTitle("PHPExcel Test Document") - ->setSubject("PHPExcel Test Document") - ->setDescription("Test document for PHPExcel, generated using PHP classes.") - ->setKeywords("Office PHPExcel php") - ->setCategory("Test result file"); - - -function transpose($value) { - return array($value); -} - -// Add some data -$continentColumn = 'D'; -$column = 'F'; - -// Set data for dropdowns -foreach(glob('./data/continents/*') as $key => $filename) { - $continent = pathinfo($filename, PATHINFO_FILENAME); - echo "Loading $continent", EOL; - $continent = str_replace(' ','_',$continent); - $countries = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); - $countryCount = count($countries); - - // Transpose $countries from a row to a column array - $countries = array_map('transpose', $countries); - $objPHPExcel->getActiveSheet() - ->fromArray($countries, null, $column . '1'); - $objPHPExcel->addNamedRange( - new PHPExcel\NamedRange( - $continent, - $objPHPExcel->getActiveSheet(), $column . '1:' . $column . $countryCount - ) - ); - $objPHPExcel->getActiveSheet() - ->getColumnDimension($column) - ->setVisible(false); - - $objPHPExcel->getActiveSheet() - ->setCellValue($continentColumn . ($key+1), $continent); - - ++$column; -} - -// Hide the dropdown data -$objPHPExcel->getActiveSheet() - ->getColumnDimension($continentColumn) - ->setVisible(false); - -$objPHPExcel->addNamedRange( - new PHPExcel\NamedRange( - 'Continents', - $objPHPExcel->getActiveSheet(), $continentColumn . '1:' . $continentColumn . ($key+1) - ) -); - - -// Set selection cells -$objPHPExcel->getActiveSheet() - ->setCellValue('A1', 'Continent:'); -$objPHPExcel->getActiveSheet() - ->setCellValue('B1', 'Select continent'); -$objPHPExcel->getActiveSheet() - ->setCellValue('B3', '=' . $column . 1); -$objPHPExcel->getActiveSheet() - ->setCellValue('B3', 'Select country'); -$objPHPExcel->getActiveSheet() - ->getStyle('A1:A3') - ->getFont()->setBold(true); - -// Set linked validators -$objValidation = $objPHPExcel->getActiveSheet() - ->getCell('B1') - ->getDataValidation(); -$objValidation->setType( PHPExcel\Cell\DataValidation::TYPE_LIST ) - ->setErrorStyle( PHPExcel\Cell\DataValidation::STYLE_INFORMATION ) - ->setAllowBlank(false) - ->setShowInputMessage(true) - ->setShowErrorMessage(true) - ->setShowDropDown(true) - ->setErrorTitle('Input error') - ->setError('Continent is not in the list.') - ->setPromptTitle('Pick from the list') - ->setPrompt('Please pick a continent from the drop-down list.') - ->setFormula1('=Continents'); - -$objPHPExcel->getActiveSheet() - ->setCellValue('A3', 'Country:'); -$objPHPExcel->getActiveSheet() - ->getStyle('A3') - ->getFont()->setBold(true); - -$objValidation = $objPHPExcel->getActiveSheet() - ->getCell('B3') - ->getDataValidation(); -$objValidation->setType( PHPExcel\Cell\DataValidation::TYPE_LIST ) - ->setErrorStyle( PHPExcel\Cell\DataValidation::STYLE_INFORMATION ) - ->setAllowBlank(false) - ->setShowInputMessage(true) - ->setShowErrorMessage(true) - ->setShowDropDown(true) - ->setErrorTitle('Input error') - ->setError('Country is not in the list.') - ->setPromptTitle('Pick from the list') - ->setPrompt('Please pick a country from the drop-down list.') - ->setFormula1('=INDIRECT($B$1)'); - - -$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(12); -$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - -// Save Excel 2007 file -// This linked validation list method only seems to work for Excel2007, not for Excel5 -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/40duplicateStyle.php b/Examples/40duplicateStyle.php deleted file mode 100644 index 28439b12..00000000 --- a/Examples/40duplicateStyle.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); -$worksheet = $objPHPExcel->getActiveSheet(); - -echo date('H:i:s') , " Create styles array" , EOL; -$styles = array(); -for ($i = 0; $i < 10; $i++) { - $style = new \PHPExcel\Style(); - $style->getFont()->setSize($i + 4); - $styles[] = $style; -} - -echo date('H:i:s') , " Add data (begin)" , EOL; -$t = microtime(true); -for ($col = 0; $col < 50; $col++) { - for ($row = 0; $row < 100; $row++) { - $str = ($row + $col); - $style = $styles[$row % 10]; - $coord = \PHPExcel\Cell::stringFromColumnIndex($col) . ($row + 1); - $worksheet->setCellValue($coord, $str); - $worksheet->duplicateStyle($style, $coord); - } -} -$d = microtime(true) - $t; -echo date('H:i:s') , " Add data (end), time: " . round($d, 2) . " s", EOL; - - -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; - - -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/41password.php b/Examples/41password.php deleted file mode 100644 index 517b27cd..00000000 --- a/Examples/41password.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -include "05featuredemo.inc.php"; - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Set password against the spreadsheet file -$objPHPExcel->getSecurity()->setLockWindows(true); -$objPHPExcel->getSecurity()->setLockStructure(true); -$objPHPExcel->getSecurity()->setWorkbookPassword('secret'); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/42richText.php b/Examples/42richText.php deleted file mode 100644 index 12722176..00000000 --- a/Examples/42richText.php +++ /dev/null @@ -1,171 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); -date_default_timezone_set('Europe/London'); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -// Create new PHPExcel object -echo date('H:i:s') , " Create new PHPExcel object" , EOL; -$objPHPExcel = new \PHPExcel\Spreadsheet(); - -// Set document properties -echo date('H:i:s') , " Set document properties" , EOL; -$objPHPExcel->getProperties()->setCreator("Maarten Balliauw") - ->setLastModifiedBy("Maarten Balliauw") - ->setTitle("PHPExcel Test Document") - ->setSubject("PHPExcel Test Document") - ->setDescription("Test document for PHPExcel, generated using PHP classes.") - ->setKeywords("office PHPExcel php") - ->setCategory("Test result file"); - - -// Add some data -echo date('H:i:s') , " Add some data" , EOL; - -$html1 = '<font color="#0000ff"> -<h1 align="center">My very first example of rich text<br />generated from html markup</h1> -<p> -<font size="14" COLOR="rgb(0,255,128)"> -<b>This block</b> contains an <i>italicized</i> word; -while this block uses an <u>underline</u>. -</font> -</p> -<p align="right"><font size="9" color="red"> -I want to eat <ins><del>healthy food</del> <strong>pizza</strong></ins>. -</font> -'; - -$html2 = '<p> -<font color="#ff0000"> - 100&deg;C is a hot temperature -</font> -<br> -<font color="#0080ff"> - 10&deg;F is cold -</font> -</p>'; - -$html3 = '2<sup>3</sup> equals 8'; - -$html4 = 'H<sub>2</sub>SO<sub>4</sub> is the chemical formula for Sulphuric acid'; - -$html5 = '<strong>bold</strong>, <em>italic</em>, <strong><em>bold+italic</em></strong>'; - -$wizard = new \PHPExcel\Helper\HTML; -$richText = $wizard->toRichTextObject($html1); - -$objPHPExcel->getActiveSheet() - ->setCellValue('A1', $richText); - -$objPHPExcel->getActiveSheet() - ->getColumnDimension('A') - ->setWidth(48); -$objPHPExcel->getActiveSheet() - ->getRowDimension(1) - ->setRowHeight(-1); -$objPHPExcel->getActiveSheet()->getStyle('A1') - ->getAlignment() - ->setWrapText(true); - -$richText = $wizard->toRichTextObject($html2); - -$objPHPExcel->getActiveSheet() - ->setCellValue('A2', $richText); - -$objPHPExcel->getActiveSheet() - ->getRowDimension(1) - ->setRowHeight(-1); -$objPHPExcel->getActiveSheet() - ->getStyle('A2') - ->getAlignment() - ->setWrapText(true); - -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A3', $wizard->toRichTextObject($html3)); - -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A4', $wizard->toRichTextObject($html4)); - -$objPHPExcel->setActiveSheetIndex(0) - ->setCellValue('A5', $wizard->toRichTextObject($html5)); - - -// Rename worksheet -echo date('H:i:s') , " Rename worksheet" , EOL; -$objPHPExcel->getActiveSheet() - ->setTitle('Rich Text Examples'); - - -// Set active sheet index to the first sheet, so Excel opens this as the first sheet -$objPHPExcel->setActiveSheetIndex(0); - - -// Save Excel 2007 file -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Save Excel 95 file -echo date('H:i:s') , " Write to Excel5 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing files" , EOL; -echo 'Files have been created in ' , getcwd() , EOL; diff --git a/Examples/43mergeWorkbooks.php b/Examples/43mergeWorkbooks.php deleted file mode 100644 index 8bd06bca..00000000 --- a/Examples/43mergeWorkbooks.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - - -echo date('H:i:s') , " Load MergeBook1 from Excel2007 file" , EOL; -$callStartTime = microtime(true); - -$objPHPExcel1 = \PHPExcel\IOFactory::load(dirname(__FILE__) . "/templates/43mergeBook1.xlsx"); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Mergebook1 was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -echo date('H:i:s') , " Load MergeBook2 from Excel2007 file" , EOL; -$callStartTime = microtime(true); - -$objPHPExcel2 = \PHPExcel\IOFactory::load(dirname(__FILE__) . "/templates/43mergeBook2.xlsx"); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Mergebook2 was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -foreach($objPHPExcel2->getSheetNames() as $sheetName) { - $sheet = $objPHPExcel2->getSheetByName($sheetName); - $sheet->setTitle($sheet->getTitle() . ' copied'); - $objPHPExcel1->addExternalSheet($sheet); -} - - -echo date('H:i:s') , " Write to Excel2007 format" , EOL; -$callStartTime = microtime(true); - -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel1, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; - -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL; -echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , EOL; -echo 'File has been created in ' , getcwd() , EOL; diff --git a/Examples/44worksheetInfo.php b/Examples/44worksheetInfo.php deleted file mode 100644 index 73804aba..00000000 --- a/Examples/44worksheetInfo.php +++ /dev/null @@ -1,57 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -error_reporting(E_ALL); -ini_set('display_errors', TRUE); -ini_set('display_startup_errors', TRUE); - -define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />'); - -date_default_timezone_set('Europe/London'); - -/** Include PHPExcel */ -require_once dirname(__FILE__) . '/../src/Bootstrap.php'; - -if (!file_exists("05featuredemo.xlsx")) { - exit("Please run 05featuredemo.php first." . EOL); -} - -$inputFileName = "05featuredemo.xlsx"; -$inputFileType = \PHPExcel\IOFactory::identify($inputFileName); -$objReader = \PHPExcel\IOFactory::createReader($inputFileType); -$sheetList = $objReader->listWorksheetNames($inputFileName); -$sheetInfo = $objReader->listWorksheetInfo($inputFileName); - -echo 'File Type:', PHP_EOL; -var_dump($inputFileType); - -echo 'Worksheet Names:', PHP_EOL; -var_dump($sheetList); - -echo 'Worksheet Names:', PHP_EOL; -var_dump($sheetInfo); - diff --git a/Examples/Excel2003XMLReader.php b/Examples/Excel2003XMLReader.php deleted file mode 100644 index ae259d16..00000000 --- a/Examples/Excel2003XMLReader.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -date_default_timezone_set('Europe/London'); - -/** \PHPExcel\IOFactory */ -require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; - - -echo date('H:i:s') , " Load from Excel2003XML file" , PHP_EOL; -$callStartTime = microtime(true); - -$objReader = \PHPExcel\IOFactory::createReader('Excel2003XML'); -$objPHPExcel = $objReader->load("Excel2003XMLTest.xml"); - - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - - -echo date('H:i:s') , " Write to Excel5 format" , PHP_EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel5'); -$objWriter->save(str_replace('.php', '.xls', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', __FILE__) , PHP_EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , PHP_EOL; diff --git a/Examples/Excel2003XMLTest.xml b/Examples/Excel2003XMLTest.xml deleted file mode 100644 index fb2d305c..00000000 --- a/Examples/Excel2003XMLTest.xml +++ /dev/null @@ -1 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel"><OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"><Colors><Color><Index>3</Index><RGB>#000000</RGB></Color><Color><Index>4</Index><RGB>#0000ff</RGB></Color><Color><Index>5</Index><RGB>#008000</RGB></Color><Color><Index>6</Index><RGB>#00ccff</RGB></Color><Color><Index>7</Index><RGB>#800080</RGB></Color><Color><Index>8</Index><RGB>#993366</RGB></Color><Color><Index>9</Index><RGB>#c0c0c0</RGB></Color><Color><Index>10</Index><RGB>#c47512</RGB></Color><Color><Index>11</Index><RGB>#ccffcc</RGB></Color><Color><Index>12</Index><RGB>#ddbc7d</RGB></Color><Color><Index>13</Index><RGB>#ff0000</RGB></Color><Color><Index>14</Index><RGB>#ff00ff</RGB></Color><Color><Index>15</Index><RGB>#ff6600</RGB></Color><Color><Index>16</Index><RGB>#ff9900</RGB></Color><Color><Index>17</Index><RGB>#ff99cc</RGB></Color><Color><Index>18</Index><RGB>#ffff00</RGB></Color></Colors></OfficeDocumentSettings><ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"><WindowHeight>9000</WindowHeight><WindowWidth>13860</WindowWidth><WindowTopX>240</WindowTopX><WindowTopY>75</WindowTopY><ProtectStructure>False</ProtectStructure><ProtectWindows>False</ProtectWindows></ExcelWorkbook><Styles><Style ss:ID="Default" ss:Name="Default"/><Style ss:ID="Result" ss:Name="Result"><Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/></Style><Style ss:ID="Result2" ss:Name="Result2"><Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/><NumberFormat ss:Format="Currency"/></Style><Style ss:ID="Heading" ss:Name="Heading"><Font ss:Bold="1" ss:Italic="1" ss:Size="16"/></Style><Style ss:ID="Heading1" ss:Name="Heading1"><Font ss:Bold="1" ss:Italic="1" ss:Size="16"/></Style><Style ss:ID="Gnumeric-default" ss:Name="Gnumeric-default"><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="co1"/><Style ss:ID="co2"/><Style ss:ID="co3"/><Style ss:ID="co4"/><Style ss:ID="co5"/><Style ss:ID="co6"/><Style ss:ID="co7"/><Style ss:ID="co8"/><Style ss:ID="co9"/><Style ss:ID="ta1"/><Style ss:ID="ce1"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#ff0000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce2"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/></Style><Style ss:ID="ce3"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11" ss:Underline="Single"/></Style><Style ss:ID="ce4"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce5"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce6"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Single"/></Style><Style ss:ID="ce7"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Double"/></Style><Style ss:ID="ce8"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:StrikeThrough="1"/></Style><Style ss:ID="ce9"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Short Date"/></Style><Style ss:ID="ce10"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Fixed"/></Style><Style ss:ID="ce11"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="Short Time"/></Style><Style ss:ID="ce12"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="General Date"/></Style><Style ss:ID="ce13"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce14"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/></Style><Style ss:ID="ce15"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Double"/></Style><Style ss:ID="ce16"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce17"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#0000ff" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/></Style><Style ss:ID="ce18"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#00b050"/><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#0070c0"/><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ffff00"/><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ff0000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce19"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce20"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce21"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce22"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce23"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="90"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce24"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce25"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce26"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/></Style><Style ss:ID="ce27"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/></Style><Style ss:ID="ce28"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="45"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce29"><Alignment ss:Vertical="Top" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce30"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce31"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-90"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce32"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce33"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce34"><Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce35"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-45"/><Borders/><Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="ce36"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce37"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff0000" ss:Pattern="Solid"/></Style><Style ss:ID="ce38"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff9900" ss:Pattern="Solid"/></Style><Style ss:ID="ce39"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ffff00" ss:Pattern="Solid"/></Style><Style ss:ID="ce40"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#008000" ss:Pattern="Solid"/></Style><Style ss:ID="ce41"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#0000ff" ss:Pattern="Solid"/></Style><Style ss:ID="ce42"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#993366" ss:Pattern="Solid"/></Style><Style ss:ID="ce43"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff99cc" ss:Pattern="Solid"/></Style><Style ss:ID="ce44"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ddbc7d" ss:Pattern="Solid"/></Style><Style ss:ID="ce45"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#00ccff" ss:Pattern="Solid"/></Style><Style ss:ID="ce46"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff0000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce47"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff6600" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce48"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ffff00" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce49"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#008000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce50"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#0000ff" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce51"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#800080" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce52"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#ff00ff" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce53"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#c47512" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce54"><Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Color="#ccffcc" ss:FontName="Calibri" ss:Size="11"/><Interior ss:Color="#ff0000" ss:Pattern="Solid"/></Style><Style ss:ID="ce55"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce56"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce57"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce58"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce59"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce60"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce61"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce62"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce63"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce64"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce65"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders><Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#000000"/></Borders><Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/></Style><Style ss:ID="ce66"><Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/><Borders/><Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="12"/></Style><Style ss:ID="ce67"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="General"/></Style><Style ss:ID="ce68"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Medium Date"/></Style><Style ss:ID="ce69"><Alignment ss:Vertical="Bottom" ss:Rotate="0"/><Borders/><Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/><NumberFormat ss:Format="Medium Time"/></Style><Style ss:ID="gr1"/><Style ss:ID="gr2"/><Style ss:ID="ta_extref"/><Style ss:ID="P1"><Font ss:FontName="Sans" ss:Size="10"/></Style><Style ss:ID="T1"/></Styles><ss:Worksheet ss:Name="Sample Data"><Table ss:StyleID="ta1"><Column ss:Width="96.4913"/><Column ss:Span="1" ss:Width="48.3874"/><Column ss:Index="4" ss:Width="35.8866"/><Column ss:Span="6" ss:Width="48.3874"/><Column ss:Index="12" ss:Width="50.2583"/><Column ss:Span="1011" ss:Width="48.3874"/><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce1"><ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Test String 1</ss:Data><Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40"><Font html:Face="Sans" html:Size="10">Test for a simple colour-formatted string</Font></ss:Data></Comment></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">1</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">5</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce2"><Data ss:Type="String">A</Data></Cell><Cell ss:StyleID="ce26"><Data ss:Type="String">E</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B1]+[.C1]"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E1]&amp;[.F1]"><Data ss:Type="String">AE</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce2"><Data ss:Type="String">Test - String 2</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">B</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="String">F</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B2]+[.C2]"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E2]&amp;[.F2]"><Data ss:Type="String">BF</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce55"><Data ss:Type="String">Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce3"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">3</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">7</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce26"><Data ss:Type="String">C</Data></Cell><Cell ss:StyleID="ce2"><Data ss:Type="String">G</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B3]+[.C3]"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E3]&amp;[.F3]"><Data ss:Type="String">CG</Data></Cell><Cell ss:StyleID="ce37"><Data ss:Type="String">Red</Data></Cell><Cell ss:StyleID="ce46"><Data ss:Type="String">Red</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce56"><Data ss:Type="String">Dash</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce4"><Data ss:Type="String">Test with (") in string</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">4</Data></Cell><Cell ss:StyleID="ce4"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce27"><Data ss:Type="String">D</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="String">H</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.B4]+[.C4]"><Data ss:Type="Number">12</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=[.E4]&amp;[.F4]"><Data ss:Type="String">DH</Data></Cell><Cell ss:StyleID="ce38"><Data ss:Type="String">Orange</Data></Cell><Cell ss:StyleID="ce47"><Data ss:Type="String">Orange</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce57"><Data ss:Type="String">Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.B4])"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.C1:.C4])"><Data ss:Type="Number">26</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.C4])"><Data ss:Type="Number">36</Data></Cell><Cell ss:StyleID="ce39"><Data ss:Type="String">Yellow</Data></Cell><Cell ss:StyleID="ce48"><Data ss:Type="String">Yellow</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce58"><Data ss:Type="String">Dash/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce6"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">1.23</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=TRUE()"><Data ss:Type="Boolean">1</Data></Cell><Cell ss:StyleID="ce24"><Data ss:Type="Boolean">1</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce40"><Data ss:Type="String">Green</Data></Cell><Cell ss:StyleID="ce49"><Data ss:Type="String">Green</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce56"><Data ss:Type="String">Thin Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce7"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2.34</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=FALSE()"><Data ss:Type="Boolean">0</Data></Cell><Cell ss:StyleID="ce25"><Data ss:Type="Boolean">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=SUM(marksrange)"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce41"><Data ss:Type="String">Blue</Data></Cell><Cell ss:StyleID="ce50"><Data ss:Type="String">Blue</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce59"><Data ss:Type="String">Thick Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Index="8" ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce8"><Data ss:Type="String">Test #3</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">3.45</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce42"><Data ss:Type="String">Purple</Data></Cell><Cell ss:StyleID="ce51"><Data ss:Type="String">Purple</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce60"><Data ss:Type="String">Variant Thick Dash/Dot/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="13.4929"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce43"><Data ss:Type="String">Pink</Data></Cell><Cell ss:StyleID="ce52"><Data ss:Type="String">Pink</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce61"><Data ss:Type="String">Thick Dash/Dot</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce9"><Data ss:Type="DateTime">1960-12-19T00:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce19"><Data ss:Type="String">TOP</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce44"><Data ss:Type="String">Brown</Data></Cell><Cell ss:StyleID="ce53"><Data ss:Type="String">Brown</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce62"><Data ss:Type="String">Thick Dash</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce10"><Data ss:Type="Number">1.5</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5" ss:Formula="of:=12/0"><Data ss:Type="Number">0</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce63"><Data ss:Type="String">Thick Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="13.4929"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce20"><Data ss:Type="String">BOTTOM</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce64"><Data ss:Type="String">Extra Thick Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce11"><Data ss:Type="DateTime">1899-12-31T02:30:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Мойва сушеная</ss:Data><Comment><ss:Data xmlns="http://www.w3.org/TR/REC-html40"><Font html:Face="Sans" html:Size="10">Tests for UTF-8 content</Font></ss:Data></Comment></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce65"><Data ss:Type="String">Double Line</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce21"><Data ss:Type="String">LEFT</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">Ärendetext</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce12"><Data ss:Type="DateTime">1960-12-19T01:30:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">Højde</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Index="16" ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce22"><Data ss:Type="String">RIGHT</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="13.4929"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="41.7543"><Cell ss:StyleID="ce5"/><Cell ss:MergeAcross="1" ss:MergeDown="1" ss:StyleID="ce18"><Data ss:Type="String">BOX</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce29"><Data ss:Type="String">Test Column 1</Data></Cell><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce33"/><Cell ss:StyleID="ce36"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="41.7543"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce32"><Data ss:Type="String">Test Column 2</Data></Cell><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce45"><Data ss:Type="String">Patterned</Data></Cell><Cell ss:StyleID="ce54"><Data ss:Type="String">Patterned 2</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="41.7543"><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce30"/><Cell ss:StyleID="ce34"><Data ss:Type="String">Test Column 3</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce13"><Data ss:Type="String">Underline None</Data></Cell><Cell ss:Index="3" ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce23"><Data ss:Type="String">Rotate 90</Data></Cell><Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce28"><Data ss:Type="String">Rotate 45</Data></Cell><Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce31"><Data ss:Type="String">Rotate -90</Data></Cell><Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce35"><Data ss:Type="String">Rotate -45</Data></Cell><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce14"><Data ss:Type="String">Underline 1</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Subscript</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Index="24" ss:Height="12.8409"><Cell ss:StyleID="ce15"><Data ss:Type="String">Underline 2</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Superscript</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce14"><Data ss:Type="String">Underline 3</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:StyleID="ce15"><Data ss:Type="String">Underline 4</Data></Cell><Cell ss:Index="1016" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="49.2378"><Cell ss:MergeAcross="2" ss:StyleID="ce16"><ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">I don't know if Gnumeric supports <B><Font html:Face="Sans" html:Color="#000000" html:Size="10">Rich Text</Font></B> in the same way as <B><Font html:Face="Sans" html:Color="#000000" html:Size="10">Excel</Font></B>, And this row should be autofit height with text wrap</ss:Data></Cell><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/><Cell ss:StyleID="ce16"/></Row><Row ss:Height="13.4079"><Cell ss:MergeAcross="2" ss:HRef="http://www.phpexcel.net/" ss:StyleID="ce17"><Data ss:Type="String">PHPExcel</Data></Cell><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Index="65536" ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row></Table><x:WorksheetOptions/></ss:Worksheet><ss:Worksheet ss:Name="Report Data"><Table ss:StyleID="ta1"><Column ss:Span="2" ss:Width="56.2394"/><Column ss:Index="4" ss:Width="78.7465"/><Column ss:Width="58.5071"/><Column ss:Width="27.4961"/><Column ss:Width="78.7465"/><Column ss:Width="68.5984"/><Column ss:Span="1015" ss:Width="48.3874"/><Column ss:Index="1025"/><Column ss:Span="1"/><Row ss:AutoFitHeight="0" ss:Height="31.4929"><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce66"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="31.4929"><Cell ss:StyleID="ce66"><Data ss:Type="String">Heading 1</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Heading 2</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Third Heading</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Date Heading</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Time Heading</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce66"><Data ss:Type="String">Adjusted Date</Data></Cell><Cell ss:StyleID="ce66"><Data ss:Type="String">Adjusted Number</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce13"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String"/></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Adjusted Number</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="String">Third Heading</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">1</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">1.11</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">2</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">4.44</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">2.22</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">3</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">9.99</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">3.33</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">4</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">17.76</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">4.44</Data></Cell></Row><Row ss:Index="8"><Cell ss:StyleID="ce13"><Data ss:Type="String">5</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">27.75</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">5.55</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">6</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">39.96</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">6.66</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">7</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">54.39</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">7.77</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">8</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">71.04</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">8.88</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">9</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">89.91</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">9.99</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">10</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">111</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">11.1</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">11</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">134.31</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">12.21</Data></Cell></Row><Row><Cell ss:StyleID="ce13"><Data ss:Type="String">12</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">159.84</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">13.32</Data></Cell></Row><Row ss:Index="16"><Cell ss:StyleID="ce13"><Data ss:Type="String">13</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce13"><Data ss:Type="Number">-1.11</Data></Cell></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">ABC</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">1</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2001-01-01T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T01:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D3]-[.B3]"><Data ss:Type="DateTime">2000-12-31T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B3]*[.C3]"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">A</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B3]&amp;[.J3]"><Data ss:Type="String">1A</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">BCD</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">2</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">2.22</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2002-02-02T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T02:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D4]-[.B4]"><Data ss:Type="DateTime">2002-01-31T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B4]*[.C4]"><Data ss:Type="Number">4.44</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">B</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B4]&amp;[.J4]"><Data ss:Type="String">2B</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">CDE</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">3</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">3.33</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2003-03-03T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T03:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D5]-[.B5]"><Data ss:Type="DateTime">2003-02-28T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B5]*[.C5]"><Data ss:Type="Number">9.99</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">C</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B5]&amp;[.J5]"><Data ss:Type="String">3C</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">DEF</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">4</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">4.44</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2004-04-03T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T04:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D6]-[.B6]"><Data ss:Type="DateTime">2004-03-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B6]*[.C6]"><Data ss:Type="Number">17.76</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">D</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B6]&amp;[.J6]"><Data ss:Type="String">4D</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">EFG</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">5</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">5.55</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2005-05-04T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T05:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D7]-[.B7]"><Data ss:Type="DateTime">2005-04-29T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B7]*[.C7]"><Data ss:Type="Number">27.75</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">E</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B7]&amp;[.J7]"><Data ss:Type="String">5E</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">FGH</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">6</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">6.66</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2006-06-05T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T06:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D8]-[.B8]"><Data ss:Type="DateTime">2006-05-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B8]*[.C8]"><Data ss:Type="Number">39.96</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">F</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B8]&amp;[.J8]"><Data ss:Type="String">6F</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">GHI</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">7</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">7.77</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2007-07-06T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T07:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D9]-[.B9]"><Data ss:Type="DateTime">2007-06-29T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B9]*[.C9]"><Data ss:Type="Number">54.39</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">G</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B9]&amp;[.J9]"><Data ss:Type="String">7G</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:Index="24" ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">HIJ</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">8</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">8.88</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2008-08-07T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T08:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D10]-[.B10]"><Data ss:Type="DateTime">2008-07-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B10]*[.C10]"><Data ss:Type="Number">71.04</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">H</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B10]&amp;[.J10]"><Data ss:Type="String">8H</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">IJK</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">9</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">9.99</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2009-09-08T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T09:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D11]-[.B11]"><Data ss:Type="DateTime">2009-08-30T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B11]*[.C11]"><Data ss:Type="Number">89.91</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">I</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B11]&amp;[.J11]"><Data ss:Type="String">9I</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">JKL</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">10</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">11.1</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2010-10-09T23:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T10:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D12]-[.B12]"><Data ss:Type="DateTime">2010-09-29T23:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B12]*[.C12]"><Data ss:Type="Number">111</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">J</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B12]&amp;[.J12]"><Data ss:Type="String">10J</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">KLM</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">11</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">12.21</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2011-11-11T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T11:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D13]-[.B13]"><Data ss:Type="DateTime">2011-10-31T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B13]*[.C13]"><Data ss:Type="Number">134.31</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">K</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B13]&amp;[.J13]"><Data ss:Type="String">11K</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">LMN</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">12</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">13.32</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">2012-12-12T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T288:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D14]-[.B14]"><Data ss:Type="DateTime">2012-11-30T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B14]*[.C14]"><Data ss:Type="Number">159.84</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">L</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B14]&amp;[.J14]"><Data ss:Type="String">12L</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:StyleID="ce5"><Data ss:Type="String">ZYX</Data></Cell><Cell ss:StyleID="ce5"><Data ss:Type="Number">-1</Data></Cell><Cell ss:StyleID="ce67"><Data ss:Type="Number">-1.11</Data></Cell><Cell ss:StyleID="ce68"><Data ss:Type="DateTime">1999-12-01T00:00:00.000</Data></Cell><Cell ss:StyleID="ce69"><Data ss:Type="DateTime">1899-12-31T23:00:00.000</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce68" ss:Formula="of:=[.D15]-[.B15]"><Data ss:Type="DateTime">1999-12-02T00:00:00.000</Data></Cell><Cell ss:StyleID="ce67" ss:Formula="of:=[.B15]*[.C15]"><Data ss:Type="Number">1.11</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"><Data ss:Type="String">M</Data></Cell><Cell ss:StyleID="ce5" ss:Formula="of:=[.B15]&amp;[.J15]"><Data ss:Type="String">-1M</Data></Cell><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/><Cell ss:StyleID="ce5"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:AutoFitHeight="0" ss:Height="14.9953"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row><Row ss:Index="65550" ss:Height="12.8409"><Cell ss:Index="1024" ss:StyleID="ce13"/></Row></Table><x:WorksheetOptions/></ss:Worksheet></Workbook> \ No newline at end of file diff --git a/Examples/GnumericReader.php b/Examples/GnumericReader.php deleted file mode 100644 index 3270dce1..00000000 --- a/Examples/GnumericReader.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -date_default_timezone_set('Europe/London'); - -/** \PHPExcel\IOFactory */ -require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; - -echo date('H:i:s') , " Load from Gnumeric file" , PHP_EOL; -$callStartTime = microtime(true); - -$objReader = \PHPExcel\IOFactory::createReader('Gnumeric'); -$objPHPExcel = $objReader->load("GnumericTest.gnumeric"); - - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - - -echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , PHP_EOL; diff --git a/Examples/OOCalcReader.php b/Examples/OOCalcReader.php deleted file mode 100644 index 40eb0e27..00000000 --- a/Examples/OOCalcReader.php +++ /dev/null @@ -1,61 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -date_default_timezone_set('Europe/London'); - -/** \PHPExcel\IOFactory */ -require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; - -echo date('H:i:s') , " Load from OOCalc file" , PHP_EOL; -$callStartTime = microtime(true); - -$objReader = \PHPExcel\IOFactory::createReader('OOCalc'); -$objPHPExcel = $objReader->load("OOCalcTest.ods"); - - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - - -echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , PHP_EOL; - diff --git a/Examples/OOCalcReaderPCLZip.php b/Examples/OOCalcReaderPCLZip.php deleted file mode 100644 index 8d9b2eef..00000000 --- a/Examples/OOCalcReaderPCLZip.php +++ /dev/null @@ -1,64 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -date_default_timezone_set('Europe/London'); - -/** \PHPExcel\IOFactory */ -require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; - -// Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file -PHPExcel\Settings::setZipClass(PHPExcel\Settings::PCLZIP); - -echo date('H:i:s') , " Load from OOCalc file" , PHP_EOL; -$callStartTime = microtime(true); - -$objReader = \PHPExcel\IOFactory::createReader('OOCalc'); -$objPHPExcel = $objReader->load("OOCalcTest.ods"); - - -$callEndTime = microtime(true); -$callTime = $callEndTime - $callStartTime; -echo 'Call time to read Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , PHP_EOL; -// Echo memory usage -echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - - -echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , PHP_EOL; - diff --git a/Examples/Quadratic.php b/Examples/Quadratic.php deleted file mode 100644 index dec9fb6e..00000000 --- a/Examples/Quadratic.php +++ /dev/null @@ -1,68 +0,0 @@ -<html> -<head> -<title>Quadratic Equation Solver</title> -</head> -<body> -<?php - -/** Error reporting **/ -error_reporting(E_ALL); - -/** Include path **/ -set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/'); - -?> -<h1>Quadratic Equation Solver</h1> -<form action="Quadratic.php" method="POST"> -Enter the coefficients for the Ax<sup>2</sup> + Bx + C = 0 -<table border="0" cellpadding="0" cellspacing="0"> - <tr><td><b>A&nbsp;</b></td> - <td><input name="A" type="text" size="8" value="<?php echo (isset($_POST['A'])) ? htmlentities($_POST['A']) : ''; ?>"></td> - </tr> - <tr><td><b>B&nbsp;</b></td> - <td><input name="B" type="text" size="8" value="<?php echo (isset($_POST['B'])) ? htmlentities($_POST['B']) : ''; ?>"></td> - </tr> - <tr><td><b>C&nbsp;</b></td> - <td><input name="C" type="text" size="8" value="<?php echo (isset($_POST['C'])) ? htmlentities($_POST['C']) : ''; ?>"></td> - </tr> -</table> -<input name="submit" type="submit" value="calculate"><br /> -If A=0, the equation is not quadratic. -</form> - -<?php -/** If the user has submitted the form, then we need to execute a calculation **/ -if (isset($_POST['submit'])) { - if ($_POST['A'] == 0) { - echo 'The equation is not quadratic'; - } else { - /** So we include PHPExcel to perform the calculations **/ - include 'PHPExcel/IOFactory.php'; - - /** Load the quadratic equation solver worksheet into memory **/ - $objPHPExcel = \PHPExcel\IOFactory::load('./Quadratic.xlsx'); - - /** Set our A, B and C values **/ - $objPHPExcel->getActiveSheet()->setCellValue('A1', $_POST['A']); - $objPHPExcel->getActiveSheet()->setCellValue('B1', $_POST['B']); - $objPHPExcel->getActiveSheet()->setCellValue('C1', $_POST['C']); - - - /** Calculate and Display the results **/ - echo '<hr /><b>Roots:</b><br />'; - - $callStartTime = microtime(true); - echo $objPHPExcel->getActiveSheet()->getCell('B5')->getCalculatedValue().'<br />'; - echo $objPHPExcel->getActiveSheet()->getCell('B6')->getCalculatedValue().'<br />'; - $callEndTime = microtime(true); - $callTime = $callEndTime - $callStartTime; - - echo '<hr />Call time for Quadratic Equation Solution was '.sprintf('%.4f',$callTime).' seconds<br /><hr />'; - echo ' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB<br />'; - } -} - -?> - -</body> -<html> diff --git a/Examples/Quadratic.xlsx b/Examples/Quadratic.xlsx deleted file mode 100644 index 9a094b36226753be00671f92d2570a2d2e4575b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8908 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%0DQnrx$5BP1~vUTr7R7wCA?GAgmXk4 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 diff --git a/Examples/Quadratic2.php b/Examples/Quadratic2.php deleted file mode 100644 index 5f6013ea..00000000 --- a/Examples/Quadratic2.php +++ /dev/null @@ -1,65 +0,0 @@ -<html> -<head> -<title>Quadratic Equation Solver</title> -</head> -<body> -<?php - -/** Error reporting **/ -error_reporting(E_ALL); - -/** Include path **/ -set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/../Classes/'); - -?> -<h1>Quadratic Equation Solver</h1> -<form action="Quadratic2.php" method="POST"> -Enter the coefficients for the Ax<sup>2</sup> + Bx + C = 0 -<table border="0" cellpadding="0" cellspacing="0"> - <tr><td><b>A&nbsp;</b></td> - <td><input name="A" type="text" size="8" value="<?php echo (isset($_POST['A'])) ? htmlentities($_POST['A']) : ''; ?>"></td> - </tr> - <tr><td><b>B&nbsp;</b></td> - <td><input name="B" type="text" size="8" value="<?php echo (isset($_POST['B'])) ? htmlentities($_POST['B']) : ''; ?>"></td> - </tr> - <tr><td><b>C&nbsp;</b></td> - <td><input name="C" type="text" size="8" value="<?php echo (isset($_POST['C'])) ? htmlentities($_POST['C']) : ''; ?>"></td> - </tr> -</table> -<input name="submit" type="submit" value="calculate"><br /> -If A=0, the equation is not quadratic. -</form> - -<?php -/** If the user has submitted the form, then we need to execute a calculation **/ -if (isset($_POST['submit'])) { - if ($_POST['A'] == 0) { - echo 'The equation is not quadratic'; - } else { - /** So we include PHPExcel to perform the calculations **/ - include 'PHPExcel/Calculation.php'; - - /** Calculate and Display the results **/ - echo '<hr /><b>Roots:</b><br />'; - - $callStartTime = microtime(true); - $discriminantFormula = '=POWER('.$_POST['B'].',2) - (4 * '.$_POST['A'].' * '.$_POST['C'].')'; - $discriminant = PHPExcel_Calculation::getInstance()->calculateFormula($discriminantFormula); - - $r1Formula = '=IMDIV(IMSUM(-'.$_POST['B'].',IMSQRT('.$discriminant.')),2 * '.$_POST['A'].')'; - $r2Formula = '=IF('.$discriminant.'=0,"Only one root",IMDIV(IMSUB(-'.$_POST['B'].',IMSQRT('.$discriminant.')),2 * '.$_POST['A'].'))'; - - echo PHPExcel_Calculation::getInstance()->calculateFormula($r1Formula).'<br />'; - echo PHPExcel_Calculation::getInstance()->calculateFormula($r2Formula).'<br />'; - $callEndTime = microtime(true); - $callTime = $callEndTime - $callStartTime; - - echo '<hr />Call time for Quadratic Equation Solution was '.sprintf('%.4f',$callTime).' seconds<br /><hr />'; - echo ' Peak memory usage: '.(memory_get_peak_usage(true) / 1024 / 1024).' MB<br />'; - } -} - -?> - -</body> -<html> diff --git a/Examples/SylkReader.php b/Examples/SylkReader.php deleted file mode 100644 index 66bc8aec..00000000 --- a/Examples/SylkReader.php +++ /dev/null @@ -1,50 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -date_default_timezone_set('Europe/London'); - -/** \PHPExcel\IOFactory */ -require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; - - -echo date('H:i:s') , " Load from SYLK file" , PHP_EOL; -$objPHPExcel = \PHPExcel\IOFactory::load("SylkTest.slk"); - -echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , PHP_EOL; diff --git a/Examples/XMLReader.php b/Examples/XMLReader.php deleted file mode 100644 index a6431351..00000000 --- a/Examples/XMLReader.php +++ /dev/null @@ -1,60 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -date_default_timezone_set('Europe/London'); - -/** \PHPExcel\IOFactory */ -require_once dirname(__FILE__) . '/../Classes/PHPExcel/IOFactory.php'; - - -echo date('H:i:s') , " Load from XML file" , PHP_EOL; -$inputFileName = "XMLTest.xml"; - -/** Identify the type of $inputFileName **/ -$inputFileType = \PHPExcel\IOFactory::identify($inputFileName); -echo 'Loading ' , $inputFileName , ' using ' , $inputFileType , " Reader" , PHP_EOL; - -/** Create a new Reader of the type that has been identified **/ -$objReader = \PHPExcel\IOFactory::createReader($inputFileType); -/** Load $inputFileName to a PHPExcel Object **/ -$objPHPExcel = $objReader->load($inputFileName); - - -echo date('H:i:s') , " Write to Excel2007 format" , PHP_EOL; -$objWriter = \PHPExcel\IOFactory::createWriter($objPHPExcel, 'Excel2007'); -$objWriter->save(str_replace('.php', '.xlsx', __FILE__)); -echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', __FILE__) , PHP_EOL; - - -// Echo memory peak usage -echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , PHP_EOL; - -// Echo done -echo date('H:i:s') , " Done writing file" , PHP_EOL; diff --git a/Examples/XMLTest.xml b/Examples/XMLTest.xml deleted file mode 100644 index 95921bcb..00000000 --- a/Examples/XMLTest.xml +++ /dev/null @@ -1,450 +0,0 @@ -<?xml version="1.0"?> -<?mso-application progid="Excel.Sheet"?> -<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" - xmlns:o="urn:schemas-microsoft-com:office:office" - xmlns:x="urn:schemas-microsoft-com:office:excel" - xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" - xmlns:html="http://www.w3.org/TR/REC-html40"> - <DocumentProperties xmlns="urn:schemas-microsoft-com:office:office"> - <Title>Excel 2003 XML Test Workbook</Title> - <Subject>This is a test workbook saved as Excel 2003 XML</Subject> - <Author>Mark Baker</Author> - <Keywords>PHPExcel Excel 2003 XML Reader</Keywords> - <Description>This is a test for the PHPExcel Reader for workbooks saved using Excel 2003's XML Format</Description> - <LastAuthor>Mark Baker</LastAuthor> - <Created>2009-09-11T08:26:08Z</Created> - <LastSaved>2009-09-17T22:53:09Z</LastSaved> - <Category>Reader</Category> - <Company>PHPExcel</Company> - <Version>14.00</Version> - </DocumentProperties> - <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> - <AllowPNG/> - </OfficeDocumentSettings> - <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> - <WindowHeight>13176</WindowHeight> - <WindowWidth>28452</WindowWidth> - <WindowTopX>240</WindowTopX> - <WindowTopY>516</WindowTopY> - <ProtectStructure>False</ProtectStructure> - <ProtectWindows>False</ProtectWindows> - </ExcelWorkbook> - <Styles> - <Style ss:ID="Default" ss:Name="Normal"> - <Alignment ss:Vertical="Bottom"/> - <Borders/> - <Font ss:FontName="Calibri" ss:Size="11" ss:Color="#000000"/> - <Interior/> - <NumberFormat/> - <Protection/> - </Style> - <Style ss:ID="m42221568"> - <Alignment ss:Horizontal="Center" ss:Vertical="Center"/> - <Borders> - <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" - ss:Color="#00B050"/> - <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="3" - ss:Color="#0070C0"/> - <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="3" - ss:Color="#FFFF00"/> - <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="3" - ss:Color="#FF0000"/> - </Borders> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - </Style> - <Style ss:ID="s62"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#FF0000" ss:Bold="1"/> - </Style> - <Style ss:ID="s63"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - </Style> - <Style ss:ID="s64"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1" - ss:Italic="1" ss:Underline="Single"/> - </Style> - <Style ss:ID="s65"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1" - ss:Underline="Single"/> - </Style> - <Style ss:ID="s66"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1"/> - <Interior/> - </Style> - <Style ss:ID="s67"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - <Interior/> - </Style> - <Style ss:ID="s68"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1"/> - </Style> - <Style ss:ID="s69"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Bold="1" - ss:Italic="1"/> - </Style> - <Style ss:ID="s70"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Underline="Single"/> - </Style> - <Style ss:ID="s71"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000" ss:Italic="1"/> - </Style> - <Style ss:ID="s72"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - <NumberFormat ss:Format="Short Date"/> - </Style> - <Style ss:ID="s73"> - <Borders> - <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2" - ss:Color="#000000"/> - </Borders> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - </Style> - <Style ss:ID="s74"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - <NumberFormat ss:Format="#\ ?/?"/> - </Style> - <Style ss:ID="s75"> - <Borders> - <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" - ss:Color="#000000"/> - </Borders> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - </Style> - <Style ss:ID="s76"> - <Borders> - <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2" - ss:Color="#000000"/> - </Borders> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - </Style> - <Style ss:ID="s77"> - <Borders> - <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" - ss:Color="#000000"/> - </Borders> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - </Style> - <Style ss:ID="s85"> - <Borders> - <Border ss:Position="DiagonalLeft" ss:LineStyle="Double" ss:Weight="3" - ss:Color="#FF0000"/> - <Border ss:Position="DiagonalRight" ss:LineStyle="Double" ss:Weight="3" - ss:Color="#FF0000"/> - </Borders> - </Style> - <Style ss:ID="s86"> - <Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1"/> - <Font ss:FontName="Arial" ss:Size="12" ss:Color="#000000" ss:Bold="1" - ss:Underline="Single"/> - </Style> - <Style ss:ID="s87"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - <NumberFormat ss:Format="0.00;[Red]0.00"/> - </Style> - <Style ss:ID="s88"> - <Font ss:FontName="Arial" ss:Size="11" ss:Color="#000000"/> - <NumberFormat ss:Format="dd\-mmm\-yyyy"/> - </Style> - </Styles> - <Worksheet ss:Name="Sample Data"> - <Table ss:ExpandedColumnCount="10" ss:ExpandedRowCount="20" x:FullColumns="1" - x:FullRows="1" ss:DefaultRowHeight="15"> - <Column ss:AutoFitWidth="0" ss:Width="90.6"/> - <Column ss:Index="4" ss:AutoFitWidth="0" ss:Width="33.6"/> - <Row ss:AutoFitHeight="0"> - <Cell ss:StyleID="s62"><Data ss:Type="String">Test String 1</Data></Cell> - <Cell ss:StyleID="s63"><Data ss:Type="Number">1</Data></Cell> - <Cell ss:StyleID="s63"><Data ss:Type="Number">5</Data></Cell> - <Cell ss:Index="5" ss:StyleID="s64"><Data ss:Type="String">A</Data></Cell> - <Cell ss:StyleID="s65"><Data ss:Type="String">E</Data></Cell> - <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">6</Data></Cell> - <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">AE</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:StyleID="s66"><Data ss:Type="String">Test - String 2</Data></Cell> - <Cell><Data ss:Type="Number">2</Data></Cell> - <Cell ss:StyleID="s63"><Data ss:Type="Number">6</Data></Cell> - <Cell ss:Index="5"><Data ss:Type="String">B</Data></Cell> - <Cell><Data ss:Type="String">F</Data></Cell> - <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">8</Data></Cell> - <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">BF</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:StyleID="s67"><Data ss:Type="String">Test #3</Data></Cell> - <Cell ss:StyleID="s63"><Data ss:Type="Number">3</Data></Cell> - <Cell ss:StyleID="s63"><Data ss:Type="Number">7</Data></Cell> - <Cell ss:Index="5" ss:StyleID="s68"><Data ss:Type="String">C</Data></Cell> - <Cell ss:StyleID="s69"><Data ss:Type="String">G</Data></Cell> - <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">10</Data></Cell> - <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">CG</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:StyleID="s70"><Data ss:Type="String">Test with (&quot;) in string</Data></Cell> - <Cell><Data ss:Type="Number">4</Data></Cell> - <Cell ss:StyleID="s63"><Data ss:Type="Number">8</Data></Cell> - <Cell ss:Index="5" ss:StyleID="s71"><Data ss:Type="String">D</Data></Cell> - <Cell><Data ss:Type="String">H</Data></Cell> - <Cell ss:Index="8" ss:Formula="=RC[-6]+RC[-5]"><Data ss:Type="Number">12</Data></Cell> - <Cell ss:Index="10" ss:Formula="=RC[-5]&amp;RC[-4]"><Data ss:Type="String">DH</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:Index="8" ss:Formula="=SUM(R[-4]C[-6]:R[-1]C[-6])"><Data - ss:Type="Number">10</Data></Cell> - <Cell ss:Formula="=SUM(R[-4]C[-6]:R[-1]C[-6])"><Data ss:Type="Number">26</Data></Cell> - <Cell ss:Formula="=SUM(R[-4]C[-8]:R[-1]C[-7])"><Data ss:Type="Number">36</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:Index="2"><Data ss:Type="Number">1.23</Data></Cell> - <Cell><Data ss:Type="Boolean">1</Data></Cell> - <Cell ss:StyleID="s72"/> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:Index="2"><Data ss:Type="Number">2.34</Data></Cell> - <Cell><Data ss:Type="Boolean">0</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:Index="2"><Data ss:Type="Number">3.45</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0" ss:Height="13.5"/> - <Row ss:AutoFitHeight="0"> - <Cell ss:StyleID="s72"><Data ss:Type="DateTime">1960-12-19T00:00:00.000</Data></Cell> - <Cell ss:Index="3" ss:StyleID="s73"><Data ss:Type="String">TOP</Data></Cell> - <Cell ss:Index="7" ss:Formula="=#N/A"><Data ss:Type="Error">#N/A</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:StyleID="s74"><Data ss:Type="Number">1.5</Data></Cell> - <Cell ss:Index="7" ss:Formula="=12/0"><Data ss:Type="Error">#DIV/0!</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0" ss:Height="13.5"> - <Cell ss:Index="3" ss:StyleID="s75"><Data ss:Type="String">BOTTOM</Data></Cell> - </Row> - <Row ss:Index="14" ss:AutoFitHeight="0"> - <Cell ss:Index="3" ss:StyleID="s76"><Data ss:Type="String">LEFT</Data></Cell> - </Row> - <Row ss:Index="16" ss:AutoFitHeight="0"> - <Cell ss:Index="3" ss:StyleID="s77"><Data ss:Type="String">RIGHT</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0" ss:Height="13.5"/> - <Row ss:AutoFitHeight="0" ss:Height="13.5"> - <Cell ss:Index="2" ss:MergeAcross="1" ss:MergeDown="1" ss:StyleID="m42221568"><Data - ss:Type="String">BOX</Data></Cell> - <Cell ss:Index="5" ss:StyleID="s85"/> - <Cell ss:Index="7"><Data ss:Type="String">Test Column 1</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:Index="8"><Data ss:Type="String">Test Column 2</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell ss:Index="9"><Data ss:Type="String">Test Column 3</Data></Cell> - </Row> - </Table> - <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> - <PageSetup> - <Header x:Margin="0.3"/> - <Footer x:Margin="0.3"/> - <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/> - </PageSetup> - <Unsynced/> - <Print> - <ValidPrinterInfo/> - <HorizontalResolution>600</HorizontalResolution> - <VerticalResolution>600</VerticalResolution> - </Print> - <Selected/> - <Panes> - <Pane> - <Number>3</Number> - <ActiveRow>17</ActiveRow> - <ActiveCol>4</ActiveCol> - </Pane> - </Panes> - <ProtectObjects>False</ProtectObjects> - <ProtectScenarios>False</ProtectScenarios> - <AllowFormatCells/> - <AllowSizeCols/> - <AllowSizeRows/> - <AllowInsertCols/> - <AllowInsertRows/> - <AllowInsertHyperlinks/> - <AllowDeleteCols/> - <AllowDeleteRows/> - <AllowSort/> - <AllowFilter/> - <AllowUsePivotTables/> - </WorksheetOptions> - </Worksheet> - <Worksheet ss:Name="Report Data"> - <Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="14" x:FullColumns="1" - x:FullRows="1" ss:DefaultRowHeight="15"> - <Column ss:AutoFitWidth="0" ss:Width="66.600000000000009"/> - <Column ss:AutoFitWidth="0" ss:Width="68.399999999999991"/> - <Column ss:AutoFitWidth="0" ss:Width="62.400000000000006"/> - <Column ss:Width="69.599999999999994"/> - <Column ss:Index="6" ss:Width="69.599999999999994"/> - <Column ss:AutoFitWidth="0" ss:Width="64.8"/> - <Row ss:AutoFitHeight="0" ss:Height="31.5"> - <Cell ss:StyleID="s86"><Data ss:Type="String">Heading 1</Data></Cell> - <Cell ss:StyleID="s86"><Data ss:Type="String">Heading 2</Data></Cell> - <Cell ss:StyleID="s86"><Data ss:Type="String">Third Heading</Data></Cell> - <Cell ss:StyleID="s86"><Data ss:Type="String">Date Heading</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s86"><Data ss:Type="String">Adjusted Date</Data></Cell> - <Cell ss:StyleID="s86"><Data ss:Type="String">Adjusted Number</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">ABC</Data></Cell> - <Cell><Data ss:Type="Number">1</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">1.1100000000000001</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2001-01-01T00:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2000-12-31T00:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">1.1100000000000001</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">BCD</Data></Cell> - <Cell><Data ss:Type="Number">2</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">2.2200000000000002</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2002-02-02T00:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2002-01-31T00:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">4.4400000000000004</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">CDE</Data></Cell> - <Cell><Data ss:Type="Number">3</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">3.33</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2003-03-03T00:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2003-02-28T00:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">9.99</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">DEF</Data></Cell> - <Cell><Data ss:Type="Number">4</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">4.4400000000000004</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2004-04-03T23:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2004-03-30T23:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">17.760000000000002</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">EFG</Data></Cell> - <Cell><Data ss:Type="Number">5</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">5.55</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2005-05-04T23:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2005-04-29T23:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">27.75</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">FGH</Data></Cell> - <Cell><Data ss:Type="Number">6</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">6.66</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2006-06-05T23:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2006-05-30T23:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">39.96</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">GHI</Data></Cell> - <Cell><Data ss:Type="Number">7</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">7.77</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2007-07-06T23:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2007-06-29T23:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">54.39</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">HIJ</Data></Cell> - <Cell><Data ss:Type="Number">8</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">8.8800000000000008</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2008-08-07T23:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2008-07-30T23:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">71.040000000000006</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">IJK</Data></Cell> - <Cell><Data ss:Type="Number">9</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">9.99</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2009-09-08T23:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2009-08-30T23:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">89.91</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">JKL</Data></Cell> - <Cell><Data ss:Type="Number">10</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">11.1</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2010-10-09T23:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2010-09-29T23:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">111</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">KLM</Data></Cell> - <Cell><Data ss:Type="Number">11</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">12.21</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2011-11-11T00:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2011-10-31T00:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">134.31</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">LMN</Data></Cell> - <Cell><Data ss:Type="Number">12</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">13.32</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">2012-12-12T00:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">2012-11-30T00:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">159.84</Data></Cell> - </Row> - <Row ss:AutoFitHeight="0"> - <Cell><Data ss:Type="String">ZYX</Data></Cell> - <Cell><Data ss:Type="Number">-1</Data></Cell> - <Cell ss:StyleID="s87"><Data ss:Type="Number">-1.1100000000000001</Data></Cell> - <Cell ss:StyleID="s88"><Data ss:Type="DateTime">1999-12-01T00:00:00.000</Data></Cell> - <Cell ss:Index="6" ss:StyleID="s88" ss:Formula="=RC[-2]-RC[-4]"><Data - ss:Type="DateTime">1999-12-02T00:00:00.000</Data></Cell> - <Cell ss:StyleID="s87" ss:Formula="=RC[-5]*RC[-4]"><Data ss:Type="Number">1.1100000000000001</Data></Cell> - </Row> - </Table> - <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel"> - <PageSetup> - <Header x:Margin="0.3"/> - <Footer x:Margin="0.3"/> - <PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/> - </PageSetup> - <Unsynced/> - <Print> - <ValidPrinterInfo/> - <HorizontalResolution>600</HorizontalResolution> - <VerticalResolution>600</VerticalResolution> - </Print> - <ProtectObjects>False</ProtectObjects> - <ProtectScenarios>False</ProtectScenarios> - <AllowFormatCells/> - <AllowSizeCols/> - <AllowSizeRows/> - <AllowInsertCols/> - <AllowInsertRows/> - <AllowInsertHyperlinks/> - <AllowDeleteCols/> - <AllowDeleteRows/> - <AllowSort/> - <AllowFilter/> - <AllowUsePivotTables/> - </WorksheetOptions> - <ConditionalFormatting xmlns="urn:schemas-microsoft-com:office:excel"> - <Range>R2C3:R14C3</Range> - <Condition> - <Qualifier>Greater</Qualifier> - <Value1>0</Value1> - <Format Style='color:#006100;background:#C6EFCE'/> - </Condition> - <Condition> - <Qualifier>Less</Qualifier> - <Value1>0</Value1> - <Format Style='color:#9C0006;background:#FFC7CE'/> - </Condition> - </ConditionalFormatting> - </Worksheet> -</Workbook> diff --git a/Examples/runall.php b/Examples/runall.php deleted file mode 100644 index cc6bd2c5..00000000 --- a/Examples/runall.php +++ /dev/null @@ -1,133 +0,0 @@ -<?php -/** - * PHPExcel - * - * Copyright (c) 2006 - 2015 PHPExcel - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * @category PHPExcel - * @package PHPExcel - * @copyright Copyright (c) 2006 - 2015 PHPExcel (https://github.com/PHPOffice/PhpSpreadsheet) - * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL - * @version ##VERSION##, ##DATE## - */ - -/** Error reporting */ -error_reporting(E_ALL); - -if (PHP_SAPI != 'cli') { - die ('This script executes all tests, and should only be run from the command line'); -} - -// List of tests -$aTests = array( - '01simple.php' - , '01simplePCLZip.php' - , '02types.php' - , '02types-xls.php' - , '03formulas.php' - , '04printing.php' - , '05featuredemo.php' - , '06largescale.php' - , '06largescale-with-cellcaching.php' - , '06largescale-with-cellcaching-sqlite.php' - , '06largescale-with-cellcaching-sqlite3.php' - , '06largescale-xls.php' - , '07reader.php' - , '07readerPCLZip.php' - , '08conditionalformatting.php' - , '08conditionalformatting2.php' - , '09pagebreaks.php' - , '10autofilter.php' - , '10autofilter-selection-1.php' - , '10autofilter-selection-2.php' - , '10autofilter-selection-display.php' - , '11documentsecurity.php' - , '11documentsecurity-xls.php' - , '12cellProtection.php' - , '13calculation.php' - , '13calculationCyclicFormulae.php' - , '14excel5.php' - , '15datavalidation.php' - , '15datavalidation-xls.php' - , '16csv.php' - , '17html.php' - , '18extendedcalculation.php' - , '19namedrange.php' - , '20readexcel5.php' - , '21pdf.php' - , '22heavilyformatted.php' - , '23sharedstyles.php' - , '24readfilter.php' - , '25inmemoryimage.php' - , '26utf8.php' - , '27imagesexcel5.php' - , '28iterator.php' - , '29advancedvaluebinder.php' - , '30template.php' - , '31docproperties_write.php' - , '31docproperties_write-xls.php' - , '32chartreadwrite.php' - , '33chartcreate-area.php' - , '33chartcreate-bar.php' - , '33chartcreate-bar-stacked.php' - , '33chartcreate-column.php' - , '33chartcreate-column-2.php' - , '33chartcreate-line.php' - , '33chartcreate-pie.php' - , '33chartcreate-radar.php' - , '33chartcreate-scatter.php' - , '33chartcreate-stock.php' - , '33chartcreate-multiple-charts.php' - , '33chartcreate-composite.php' - , '34chartupdate.php' - , '35chartrender.php' - , '36chartreadwriteHTML.php' - , '36chartreadwritePDF.php' - , '37page_layout_view.php' - , '38cloneWorksheet.php' - , '39dropdown.php' - , '40duplicateStyle.php' - , '41password.php' - , '42richText.php' - , '43mergeWorkbooks.php' - , '44worksheetInfo.php' - , 'OOCalcReader.php' - , 'OOCalcReaderPCLZip.php' - , 'SylkReader.php' - , 'Excel2003XMLReader.php' - , 'XMLReader.php' - , 'GnumericReader.php' -); - -// First, clear all previous run results -foreach ($aTests as $sTest) { - @unlink( str_replace('.php', '.xls', $sTest) ); - @unlink( str_replace('.php', '.xlsx', $sTest) ); - @unlink( str_replace('.php', '.csv', $sTest) ); - @unlink( str_replace('.php', '.htm', $sTest) ); - @unlink( str_replace('.php', '.pdf', $sTest) ); -} - -// Run all tests -foreach ($aTests as $sTest) { - echo '============== TEST ==============' . "\r\n"; - echo 'Test name: ' . $sTest . "\r\n"; - echo "\r\n"; - echo shell_exec('php ' . $sTest); - echo "\r\n"; - echo "\r\n"; -} \ No newline at end of file diff --git a/samples/01_Simple.php b/samples/01_Simple.php new file mode 100644 index 00000000..10377d70 --- /dev/null +++ b/samples/01_Simple.php @@ -0,0 +1,63 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties() + ->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +$spreadsheet->getActiveSheet() + ->setCellValue('A8', "Hello\nWorld"); +$spreadsheet->getActiveSheet() + ->getRowDimension(8) + ->setRowHeight(-1); +$spreadsheet->getActiveSheet() + ->getStyle('A8') + ->getAlignment() + ->setWrapText(true); + +$value = "-ValueA\n-Value B\n-Value C"; +$spreadsheet->getActiveSheet() + ->setCellValue('A10', $value); +$spreadsheet->getActiveSheet() + ->getRowDimension(10) + ->setRowHeight(-1); +$spreadsheet->getActiveSheet() + ->getStyle('A10') + ->getAlignment() + ->setWrapText(true); +$spreadsheet->getActiveSheet() + ->getStyle('A10') + ->setQuotePrefix(true); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet() + ->setTitle('Simple'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/01_Simple_PCLZip.php b/samples/01_Simple_PCLZip.php new file mode 100644 index 00000000..915a1413 --- /dev/null +++ b/samples/01_Simple_PCLZip.php @@ -0,0 +1,50 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +$spreadsheet->getActiveSheet()->setCellValue('A8', "Hello\nWorld"); +$spreadsheet->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); +$spreadsheet->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Simple'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +// Save Excel 2007 file +$helper->log('Write to Excel2007 format'); + +// Use PCLZip rather than ZipArchive to create the Excel2007 OfficeOpenXML file +PhpSpreadsheet\Settings::setZipClass(PhpSpreadsheet\Settings::PCLZIP); + +// Save +$helper->write($spreadsheet, __FILE__, ['Excel2007' => 'xlsx']); diff --git a/samples/01_Simple_download_ods.php b/samples/01_Simple_download_ods.php new file mode 100644 index 00000000..705e69e4 --- /dev/null +++ b/samples/01_Simple_download_ods.php @@ -0,0 +1,57 @@ +<?php + +require_once __DIR__ . '/../src/Bootstrap.php'; + +$helper = new \PhpSpreadsheet\Helper\Sample(); +if ($helper->isCli()) { + echo 'This example should only be run from a Web Browser' . PHP_EOL; + + return; +} + +// Create new Spreadsheet object +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +$spreadsheet->getActiveSheet()->setTitle('Simple'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +// Redirect output to a client’s web browser (OpenDocument) +header('Content-Type: application/vnd.oasis.opendocument.spreadsheet'); +header('Content-Disposition: attachment;filename="01simple.ods"'); +header('Cache-Control: max-age=0'); +// If you're serving to IE 9, then the following may be needed +header('Cache-Control: max-age=1'); + +// If you're serving to IE over SSL, then the following may be needed +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past +header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified +header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 +header('Pragma: public'); // HTTP/1.0 + +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'OpenDocument'); +$writer->save('php://output'); +exit; diff --git a/samples/01_Simple_download_pdf.php b/samples/01_Simple_download_pdf.php new file mode 100644 index 00000000..ee9b522d --- /dev/null +++ b/samples/01_Simple_download_pdf.php @@ -0,0 +1,66 @@ +<?php + +require_once __DIR__ . '/../src/Bootstrap.php'; + +$helper = new \PhpSpreadsheet\Helper\Sample(); +if ($helper->isCli()) { + echo 'This example should only be run from a Web Browser' . PHP_EOL; + + return; +} + +// Change these values to select the Rendering library that you wish to use +// and its directory location on your server +//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererLibrary = 'tcPDF5.9'; +$rendererLibrary = 'mPDF5.4'; +//$rendererLibrary = 'domPDF0.6.0beta3'; +$rendererLibraryPath = __DIR__ . '/../../../libraries/PDF/' . $rendererLibrary; + +// Create new Spreadsheet object +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PDF Test Document') + ->setSubject('PDF Test Document') + ->setDescription('Test document for PDF, generated using PHP classes.') + ->setKeywords('pdf php') + ->setCategory('Test result file'); + +// Add some data +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +$spreadsheet->getActiveSheet()->setTitle('Simple'); +$spreadsheet->getActiveSheet()->setShowGridLines(false); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +if (!PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { + $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); + + return; +} + +// Redirect output to a client’s web browser (PDF) +header('Content-Type: application/pdf'); +header('Content-Disposition: attachment;filename="01simple.pdf"'); +header('Cache-Control: max-age=0'); + +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'PDF'); +$writer->save('php://output'); +exit; diff --git a/samples/01_Simple_download_xls.php b/samples/01_Simple_download_xls.php new file mode 100644 index 00000000..94807e38 --- /dev/null +++ b/samples/01_Simple_download_xls.php @@ -0,0 +1,57 @@ +<?php + +require_once __DIR__ . '/../src/Bootstrap.php'; + +$helper = new \PhpSpreadsheet\Helper\Sample(); +if ($helper->isCli()) { + echo 'This example should only be run from a Web Browser' . PHP_EOL; + + return; +} + +// Create new Spreadsheet object +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +$spreadsheet->getActiveSheet()->setTitle('Simple'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +// Redirect output to a client’s web browser (Excel5) +header('Content-Type: application/vnd.ms-excel'); +header('Content-Disposition: attachment;filename="01simple.xls"'); +header('Cache-Control: max-age=0'); +// If you're serving to IE 9, then the following may be needed +header('Cache-Control: max-age=1'); + +// If you're serving to IE over SSL, then the following may be needed +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past +header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified +header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 +header('Pragma: public'); // HTTP/1.0 + +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); +$writer->save('php://output'); +exit; diff --git a/samples/01_Simple_download_xlsx.php b/samples/01_Simple_download_xlsx.php new file mode 100644 index 00000000..2afbfe22 --- /dev/null +++ b/samples/01_Simple_download_xlsx.php @@ -0,0 +1,56 @@ +<?php + +require_once __DIR__ . '/../src/Bootstrap.php'; + +$helper = new \PhpSpreadsheet\Helper\Sample(); +if ($helper->isCli()) { + echo 'This example should only be run from a Web Browser' . PHP_EOL; + + return; +} +// Create new Spreadsheet object +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +// Rename worksheet +$spreadsheet->getActiveSheet()->setTitle('Simple'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +// Redirect output to a client’s web browser (Excel2007) +header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); +header('Content-Disposition: attachment;filename="01simple.xlsx"'); +header('Cache-Control: max-age=0'); +// If you're serving to IE 9, then the following may be needed +header('Cache-Control: max-age=1'); + +// If you're serving to IE over SSL, then the following may be needed +header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past +header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified +header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 +header('Pragma: public'); // HTTP/1.0 + +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->save('php://output'); +exit; diff --git a/samples/02_Types.php b/samples/02_Types.php new file mode 100644 index 00000000..4e3c3fbf --- /dev/null +++ b/samples/02_Types.php @@ -0,0 +1,156 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties() + ->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Set default font +$helper->log('Set default font'); +$spreadsheet->getDefaultStyle() + ->getFont() + ->setName('Arial') + ->setSize(10); + +// Add some data, resembling some different data types +$helper->log('Add some data'); +$spreadsheet->getActiveSheet() + ->setCellValue('A1', 'String') + ->setCellValue('B1', 'Simple') + ->setCellValue('C1', 'PhpSpreadsheet'); + +$spreadsheet->getActiveSheet() + ->setCellValue('A2', 'String') + ->setCellValue('B2', 'Symbols') + ->setCellValue('C2', '!+&=()~§±æþ'); + +$spreadsheet->getActiveSheet() + ->setCellValue('A3', 'String') + ->setCellValue('B3', 'UTF-8') + ->setCellValue('C3', 'Создать MS Excel Книги из PHP скриптов'); + +$spreadsheet->getActiveSheet() + ->setCellValue('A4', 'Number') + ->setCellValue('B4', 'Integer') + ->setCellValue('C4', 12); + +$spreadsheet->getActiveSheet() + ->setCellValue('A5', 'Number') + ->setCellValue('B5', 'Float') + ->setCellValue('C5', 34.56); + +$spreadsheet->getActiveSheet() + ->setCellValue('A6', 'Number') + ->setCellValue('B6', 'Negative') + ->setCellValue('C6', -7.89); + +$spreadsheet->getActiveSheet() + ->setCellValue('A7', 'Boolean') + ->setCellValue('B7', 'True') + ->setCellValue('C7', true); + +$spreadsheet->getActiveSheet() + ->setCellValue('A8', 'Boolean') + ->setCellValue('B8', 'False') + ->setCellValue('C8', false); + +$dateTimeNow = time(); +$spreadsheet->getActiveSheet() + ->setCellValue('A9', 'Date/Time') + ->setCellValue('B9', 'Date') + ->setCellValue('C9', \PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); +$spreadsheet->getActiveSheet() + ->getStyle('C9') + ->getNumberFormat() + ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); + +$spreadsheet->getActiveSheet() + ->setCellValue('A10', 'Date/Time') + ->setCellValue('B10', 'Time') + ->setCellValue('C10', \PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); +$spreadsheet->getActiveSheet() + ->getStyle('C10') + ->getNumberFormat() + ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4); + +$spreadsheet->getActiveSheet() + ->setCellValue('A11', 'Date/Time') + ->setCellValue('B11', 'Date and Time') + ->setCellValue('C11', \PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); +$spreadsheet->getActiveSheet() + ->getStyle('C11') + ->getNumberFormat() + ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME); + +$spreadsheet->getActiveSheet() + ->setCellValue('A12', 'NULL') + ->setCellValue('C12', null); + +$richText = new \PhpSpreadsheet\RichText(); +$richText->createText('你好 '); + +$payable = $richText->createTextRun('你 好 吗?'); +$payable->getFont()->setBold(true); +$payable->getFont()->setItalic(true); +$payable->getFont()->setColor(new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_DARKGREEN)); + +$richText->createText(', unless specified otherwise on the invoice.'); + +$spreadsheet->getActiveSheet() + ->setCellValue('A13', 'Rich Text') + ->setCellValue('C13', $richText); + +$richText2 = new \PhpSpreadsheet\RichText(); +$richText2->createText("black text\n"); + +$red = $richText2->createTextRun('red text'); +$red->getFont()->setColor(new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_RED)); + +$spreadsheet->getActiveSheet() + ->getCell('C14') + ->setValue($richText2); +$spreadsheet->getActiveSheet() + ->getStyle('C14') + ->getAlignment()->setWrapText(true); + +$spreadsheet->getActiveSheet()->setCellValue('A17', 'Hyperlink'); + +$spreadsheet->getActiveSheet() + ->setCellValue('C17', 'PhpSpreadsheet Web Site'); +$spreadsheet->getActiveSheet() + ->getCell('C17') + ->getHyperlink() + ->setUrl('https://github.com/PHPOffice/PhpSpreadsheet') + ->setTooltip('Navigate to PhpSpreadsheet website'); + +$spreadsheet->getActiveSheet() + ->setCellValue('C18', '=HYPERLINK("mailto:abc@def.com","abc@def.com")'); + +$spreadsheet->getActiveSheet() + ->getColumnDimension('B') + ->setAutoSize(true); +$spreadsheet->getActiveSheet() + ->getColumnDimension('C') + ->setAutoSize(true); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Datatypes'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/03_Formulas.php b/samples/03_Formulas.php new file mode 100644 index 00000000..dfe313f3 --- /dev/null +++ b/samples/03_Formulas.php @@ -0,0 +1,79 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data, we will use some formulas here +$helper->log('Add some data'); +$spreadsheet->getActiveSheet() + ->setCellValue('A5', 'Sum:'); + +$spreadsheet->getActiveSheet()->setCellValue('B1', 'Range #1') + ->setCellValue('B2', 3) + ->setCellValue('B3', 7) + ->setCellValue('B4', 13) + ->setCellValue('B5', '=SUM(B2:B4)'); +$helper->log('Sum of Range #1 is ' . $spreadsheet->getActiveSheet()->getCell('B5')->getCalculatedValue()); + +$spreadsheet->getActiveSheet()->setCellValue('C1', 'Range #2') + ->setCellValue('C2', 5) + ->setCellValue('C3', 11) + ->setCellValue('C4', 17) + ->setCellValue('C5', '=SUM(C2:C4)'); +$helper->log('Sum of Range #2 is ', $spreadsheet->getActiveSheet()->getCell('C5')->getCalculatedValue()); + +$spreadsheet->getActiveSheet() + ->setCellValue('A7', 'Total of both ranges:'); +$spreadsheet->getActiveSheet() + ->setCellValue('B7', '=SUM(B5:C5)'); +$helper->log('Sum of both Ranges is ', $spreadsheet->getActiveSheet()->getCell('B7')->getCalculatedValue()); + +$spreadsheet->getActiveSheet() + ->setCellValue('A8', 'Minimum of both ranges:'); +$spreadsheet->getActiveSheet() + ->setCellValue('B8', '=MIN(B2:C4)'); +$helper->log('Minimum value in either Range is ', $spreadsheet->getActiveSheet()->getCell('B8')->getCalculatedValue()); + +$spreadsheet->getActiveSheet() + ->setCellValue('A9', 'Maximum of both ranges:'); +$spreadsheet->getActiveSheet() + ->setCellValue('B9', '=MAX(B2:C4)'); +$helper->log('Maximum value in either Range is ', $spreadsheet->getActiveSheet()->getCell('B9')->getCalculatedValue()); + +$spreadsheet->getActiveSheet() + ->setCellValue('A10', 'Average of both ranges:'); +$spreadsheet->getActiveSheet() + ->setCellValue('B10', '=AVERAGE(B2:C4)'); +$helper->log('Average value of both Ranges is ', $spreadsheet->getActiveSheet()->getCell('B10')->getCalculatedValue()); +$spreadsheet->getActiveSheet() + ->getColumnDimension('A') + ->setAutoSize(true); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet() + ->setTitle('Formulas'); + +// +// If we set Pre Calculated Formulas to true then PhpSpreadsheet will calculate all formulae in the +// workbook before saving. This adds time and memory overhead, and can cause some problems with formulae +// using functions or features (such as array formulae) that aren't yet supported by the calculation engine +// If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to +// open the file) will need to recalculate values itself to guarantee that the correct results are available. +// +//$writer->setPreCalculateFormulas(true); +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/04_Printing.php b/samples/04_Printing.php new file mode 100644 index 00000000..1f4b0425 --- /dev/null +++ b/samples/04_Printing.php @@ -0,0 +1,59 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data, we will use printing features +$helper->log('Add some data'); +for ($i = 1; $i < 200; ++$i) { + $spreadsheet->getActiveSheet()->setCellValue('A' . $i, $i); + $spreadsheet->getActiveSheet()->setCellValue('B' . $i, 'Test value'); +} + +// Set header and footer. When no different headers for odd/even are used, odd header is assumed. +$helper->log('Set header/footer'); +$spreadsheet->getActiveSheet() + ->getHeaderFooter() + ->setOddHeader('&L&G&C&HPlease treat this document as confidential!'); +$spreadsheet->getActiveSheet() + ->getHeaderFooter() + ->setOddFooter('&L&B' . $spreadsheet->getProperties()->getTitle() . '&RPage &P of &N'); + +// Add a drawing to the header +$helper->log('Add a drawing to the header'); +$drawing = new \PhpSpreadsheet\Worksheet\HeaderFooterDrawing(); +$drawing->setName('PhpSpreadsheet logo'); +$drawing->setPath(__DIR__ . '/images/PhpSpreadsheet_logo.gif'); +$drawing->setHeight(36); +$spreadsheet->getActiveSheet() + ->getHeaderFooter() + ->addImage($drawing, \PhpSpreadsheet\Worksheet\HeaderFooter::IMAGE_HEADER_LEFT); + +// Set page orientation and size +$helper->log('Set page orientation and size'); +$spreadsheet->getActiveSheet() + ->getPageSetup() + ->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); +$spreadsheet->getActiveSheet() + ->getPageSetup() + ->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Printing'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/05_Feature_demo.php b/samples/05_Feature_demo.php new file mode 100644 index 00000000..0fbb86a6 --- /dev/null +++ b/samples/05_Feature_demo.php @@ -0,0 +1,7 @@ +<?php + +require __DIR__ . '/Header.php'; +$spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/06_Largescale.php b/samples/06_Largescale.php new file mode 100644 index 00000000..a5054c34 --- /dev/null +++ b/samples/06_Largescale.php @@ -0,0 +1,8 @@ +<?php + +require __DIR__ . '/Header.php'; + +$spreadsheet = require __DIR__ . '/templates/largeSpreadsheet.php'; + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/06_Largescale_with_cellcaching.php b/samples/06_Largescale_with_cellcaching.php new file mode 100644 index 00000000..6b25378c --- /dev/null +++ b/samples/06_Largescale_with_cellcaching.php @@ -0,0 +1,15 @@ +<?php + +require __DIR__ . '/Header.php'; + +$cacheMethod = \PhpSpreadsheet\CachedObjectStorageFactory::CACHE_IN_MEMORY_GZIP; +if (\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { + $helper->log('Enable Cell Caching using ' . $cacheMethod . ' method'); +} else { + $helper->log('ERROR: Unable to set Cell Caching using ' . $cacheMethod . ' method, reverting to memory'); +} + +$spreadsheet = require __DIR__ . '/templates/largeSpreadsheet.php'; + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/06_Largescale_with_cellcaching_sqlite.php b/samples/06_Largescale_with_cellcaching_sqlite.php new file mode 100644 index 00000000..16083016 --- /dev/null +++ b/samples/06_Largescale_with_cellcaching_sqlite.php @@ -0,0 +1,15 @@ +<?php + +require __DIR__ . '/Header.php'; + +$cacheMethod = \PhpSpreadsheet\CachedObjectStorageFactory::CACHE_TO_SQLITE; +if (\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { + $helper->log('Enable Cell Caching using ' . $cacheMethod . ' method'); +} else { + $helper->log('ERROR: Unable to set Cell Caching using ' . $cacheMethod . ' method, reverting to memory'); +} + +$spreadsheet = require __DIR__ . '/templates/largeSpreadsheet.php'; + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/06_Largescale_with_cellcaching_sqlite3.php b/samples/06_Largescale_with_cellcaching_sqlite3.php new file mode 100644 index 00000000..7ea31645 --- /dev/null +++ b/samples/06_Largescale_with_cellcaching_sqlite3.php @@ -0,0 +1,15 @@ +<?php + +require __DIR__ . '/Header.php'; + +$cacheMethod = \PhpSpreadsheet\CachedObjectStorageFactory::CACHE_TO_SQLITE3; +if (\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { + $helper->log('Enable Cell Caching using ' . $cacheMethod . ' method'); +} else { + $helper->log('ERROR: Unable to set Cell Caching using ' . $cacheMethod . ' method, reverting to memory'); +} + +$spreadsheet = require __DIR__ . '/templates/largeSpreadsheet.php'; + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/07_Reader.php b/samples/07_Reader.php new file mode 100644 index 00000000..587ccfd2 --- /dev/null +++ b/samples/07_Reader.php @@ -0,0 +1,16 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create temporary file that will be read +$sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; +$filename = $helper->getTemporaryFilename(); +$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer->save($filename); + +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('Excel2007', $filename, $callStartTime); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/07_Reader_PCLZip.php b/samples/07_Reader_PCLZip.php new file mode 100644 index 00000000..5a57c947 --- /dev/null +++ b/samples/07_Reader_PCLZip.php @@ -0,0 +1,20 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create temporary file that will be read +$sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; +$filename = $helper->getTemporaryFilename(); +$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer->save($filename); + +// Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file +\PhpSpreadsheet\Settings::setZipClass(\PhpSpreadsheet\Settings::PCLZIP); + +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('Excel2007', $filename, $callStartTime); +$callEndTime = microtime(true); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/08_Conditional_formatting.php b/samples/08_Conditional_formatting.php new file mode 100644 index 00000000..eced9c29 --- /dev/null +++ b/samples/08_Conditional_formatting.php @@ -0,0 +1,109 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Create a first sheet, representing sales data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Description') + ->setCellValue('B1', 'Amount'); + +$spreadsheet->getActiveSheet()->setCellValue('A2', 'Paycheck received') + ->setCellValue('B2', 100); + +$spreadsheet->getActiveSheet()->setCellValue('A3', 'Cup of coffee bought') + ->setCellValue('B3', -1.5); + +$spreadsheet->getActiveSheet()->setCellValue('A4', 'Cup of coffee bought') + ->setCellValue('B4', -1.5); + +$spreadsheet->getActiveSheet()->setCellValue('A5', 'Cup of tea bought') + ->setCellValue('B5', -1.2); + +$spreadsheet->getActiveSheet()->setCellValue('A6', 'Found some money') + ->setCellValue('B6', 8); + +$spreadsheet->getActiveSheet()->setCellValue('A7', 'Total:') + ->setCellValue('B7', '=SUM(B2:B6)'); + +// Set column widths +$helper->log('Set column widths'); +$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(30); +$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(12); + +// Add conditional formatting +$helper->log('Add conditional formatting'); +$conditional1 = new \PhpSpreadsheet\Style\Conditional(); +$conditional1->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_BETWEEN) + ->addCondition('200') + ->addCondition('400'); +$conditional1->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_YELLOW); +$conditional1->getStyle()->getFont()->setBold(true); +$conditional1->getStyle()->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +$conditional2 = new \PhpSpreadsheet\Style\Conditional(); +$conditional2->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN) + ->addCondition('0'); +$conditional2->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_RED); +$conditional2->getStyle()->getFont()->setItalic(true); +$conditional2->getStyle()->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +$conditional3 = new \PhpSpreadsheet\Style\Conditional(); +$conditional3->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) + ->addCondition('0'); +$conditional3->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_GREEN); +$conditional3->getStyle()->getFont()->setItalic(true); +$conditional3->getStyle()->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +$conditionalStyles = $spreadsheet->getActiveSheet()->getStyle('B2')->getConditionalStyles(); +array_push($conditionalStyles, $conditional1); +array_push($conditionalStyles, $conditional2); +array_push($conditionalStyles, $conditional3); +$spreadsheet->getActiveSheet()->getStyle('B2')->setConditionalStyles($conditionalStyles); + +// duplicate the conditional styles across a range of cells +$helper->log('Duplicate the conditional formatting across a range of cells'); +$spreadsheet->getActiveSheet()->duplicateConditionalStyle( + $spreadsheet->getActiveSheet()->getStyle('B2')->getConditionalStyles(), + 'B3:B7' +); + +// Set fonts +$helper->log('Set fonts'); +$spreadsheet->getActiveSheet()->getStyle('A1:B1')->getFont()->setBold(true); +//$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getStyle('A7:B7')->getFont()->setBold(true); +//$spreadsheet->getActiveSheet()->getStyle('B7')->getFont()->setBold(true); +// Set header and footer. When no different headers for odd/even are used, odd header is assumed. +$helper->log('Set header/footer'); +$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BPersonal cash register&RPrinted on &D'); +$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $spreadsheet->getProperties()->getTitle() . '&RPage &P of &N'); + +// Set page orientation and size +$helper->log('Set page orientation and size'); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); +$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Invoice'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/08_Conditional_formatting_2.php b/samples/08_Conditional_formatting_2.php new file mode 100644 index 00000000..958792e5 --- /dev/null +++ b/samples/08_Conditional_formatting_2.php @@ -0,0 +1,65 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Create a first sheet, representing sales data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet() + ->setCellValue('A1', '-0.5') + ->setCellValue('A2', '-0.25') + ->setCellValue('A3', '0.0') + ->setCellValue('A4', '0.25') + ->setCellValue('A5', '0.5') + ->setCellValue('A6', '0.75') + ->setCellValue('A7', '1.0') + ->setCellValue('A8', '1.25'); + +$spreadsheet->getActiveSheet()->getStyle('A1:A8') + ->getNumberFormat() + ->setFormatCode( + \PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00 + ); + +// Add conditional formatting +$helper->log('Add conditional formatting'); +$conditional1 = new \PhpSpreadsheet\Style\Conditional(); +$conditional1->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN) + ->addCondition('0'); +$conditional1->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_RED); + +$conditional3 = new \PhpSpreadsheet\Style\Conditional(); +$conditional3->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) + ->addCondition('1'); +$conditional3->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_GREEN); + +$conditionalStyles = $spreadsheet->getActiveSheet()->getStyle('A1')->getConditionalStyles(); +array_push($conditionalStyles, $conditional1); +array_push($conditionalStyles, $conditional3); +$spreadsheet->getActiveSheet()->getStyle('A1')->setConditionalStyles($conditionalStyles); + +// duplicate the conditional styles across a range of cells +$helper->log('Duplicate the conditional formatting across a range of cells'); +$spreadsheet->getActiveSheet()->duplicateConditionalStyle( + $spreadsheet->getActiveSheet()->getStyle('A1')->getConditionalStyles(), + 'A2:A8' +); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/09_Pagebreaks.php b/samples/09_Pagebreaks.php new file mode 100644 index 00000000..5fa385af --- /dev/null +++ b/samples/09_Pagebreaks.php @@ -0,0 +1,60 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Create a first sheet +$helper->log('Add data and page breaks'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Firstname') + ->setCellValue('B1', 'Lastname') + ->setCellValue('C1', 'Phone') + ->setCellValue('D1', 'Fax') + ->setCellValue('E1', 'Is Client ?'); + +// Add data +for ($i = 2; $i <= 50; ++$i) { + $spreadsheet->getActiveSheet()->setCellValue('A' . $i, "FName $i"); + $spreadsheet->getActiveSheet()->setCellValue('B' . $i, "LName $i"); + $spreadsheet->getActiveSheet()->setCellValue('C' . $i, "PhoneNo $i"); + $spreadsheet->getActiveSheet()->setCellValue('D' . $i, "FaxNo $i"); + $spreadsheet->getActiveSheet()->setCellValue('E' . $i, true); + + // Add page breaks every 10 rows + if ($i % 10 == 0) { + // Add a page break + $spreadsheet->getActiveSheet()->setBreak('A' . $i, \PhpSpreadsheet\Worksheet::BREAK_ROW); + } +} + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setTitle('Printing Options'); + +// Set print headers +$spreadsheet->getActiveSheet() + ->getHeaderFooter()->setOddHeader('&C&24&K0000FF&B&U&A'); +$spreadsheet->getActiveSheet() + ->getHeaderFooter()->setEvenHeader('&C&24&K0000FF&B&U&A'); + +// Set print footers +$spreadsheet->getActiveSheet() + ->getHeaderFooter()->setOddFooter('&R&D &T&C&F&LPage &P / &N'); +$spreadsheet->getActiveSheet() + ->getHeaderFooter()->setEvenFooter('&L&D &T&C&F&RPage &P / &N'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/10_Autofilter.php b/samples/10_Autofilter.php new file mode 100644 index 00000000..9ef59f72 --- /dev/null +++ b/samples/10_Autofilter.php @@ -0,0 +1,99 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Create the worksheet +$helper->log('Add data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Year') + ->setCellValue('B1', 'Quarter') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Sales'); + +$dataArray = [ + ['2010', 'Q1', 'United States', 790], + ['2010', 'Q2', 'United States', 730], + ['2010', 'Q3', 'United States', 860], + ['2010', 'Q4', 'United States', 850], + ['2011', 'Q1', 'United States', 800], + ['2011', 'Q2', 'United States', 700], + ['2011', 'Q3', 'United States', 900], + ['2011', 'Q4', 'United States', 950], + ['2010', 'Q1', 'Belgium', 380], + ['2010', 'Q2', 'Belgium', 390], + ['2010', 'Q3', 'Belgium', 420], + ['2010', 'Q4', 'Belgium', 460], + ['2011', 'Q1', 'Belgium', 400], + ['2011', 'Q2', 'Belgium', 350], + ['2011', 'Q3', 'Belgium', 450], + ['2011', 'Q4', 'Belgium', 500], + ['2010', 'Q1', 'UK', 690], + ['2010', 'Q2', 'UK', 610], + ['2010', 'Q3', 'UK', 620], + ['2010', 'Q4', 'UK', 600], + ['2011', 'Q1', 'UK', 720], + ['2011', 'Q2', 'UK', 650], + ['2011', 'Q3', 'UK', 580], + ['2011', 'Q4', 'UK', 510], + ['2010', 'Q1', 'France', 510], + ['2010', 'Q2', 'France', 490], + ['2010', 'Q3', 'France', 460], + ['2010', 'Q4', 'France', 590], + ['2011', 'Q1', 'France', 620], + ['2011', 'Q2', 'France', 650], + ['2011', 'Q3', 'France', 415], + ['2011', 'Q4', 'France', 570], + ['2010', 'Q1', 'Germany', 720], + ['2010', 'Q2', 'Germany', 680], + ['2010', 'Q3', 'Germany', 640], + ['2010', 'Q4', 'Germany', 660], + ['2011', 'Q1', 'Germany', 680], + ['2011', 'Q2', 'Germany', 620], + ['2011', 'Q3', 'Germany', 710], + ['2011', 'Q4', 'Germany', 690], + ['2010', 'Q1', 'Spain', 510], + ['2010', 'Q2', 'Spain', 490], + ['2010', 'Q3', 'Spain', 470], + ['2010', 'Q4', 'Spain', 420], + ['2011', 'Q1', 'Spain', 460], + ['2011', 'Q2', 'Spain', 390], + ['2011', 'Q3', 'Spain', 430], + ['2011', 'Q4', 'Spain', 415], + ['2010', 'Q1', 'Italy', 440], + ['2010', 'Q2', 'Italy', 410], + ['2010', 'Q3', 'Italy', 420], + ['2010', 'Q4', 'Italy', 450], + ['2011', 'Q1', 'Italy', 430], + ['2011', 'Q2', 'Italy', 370], + ['2011', 'Q3', 'Italy', 350], + ['2011', 'Q4', 'Italy', 335], +]; +$spreadsheet->getActiveSheet()->fromArray($dataArray, null, 'A2'); + +// Set title row bold +$helper->log('Set title row bold'); +$spreadsheet->getActiveSheet()->getStyle('A1:D1')->getFont()->setBold(true); + +// Set autofilter +$helper->log('Set autofilter'); +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$spreadsheet->getActiveSheet()->setAutoFilter($spreadsheet->getActiveSheet()->calculateWorksheetDimension()); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/10_Autofilter_selection_1.php b/samples/10_Autofilter_selection_1.php new file mode 100644 index 00000000..746b7847 --- /dev/null +++ b/samples/10_Autofilter_selection_1.php @@ -0,0 +1,150 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Create the worksheet +$helper->log('Add data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Financial Year') + ->setCellValue('B1', 'Financial Period') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Date') + ->setCellValue('E1', 'Sales Value') + ->setCellValue('F1', 'Expenditure'); +$startYear = $endYear = $currentYear = date('Y'); +--$startYear; +++$endYear; + +$years = range($startYear, $endYear); +$periods = range(1, 12); +$countries = [ + 'United States', + 'UK', + 'France', + 'Germany', + 'Italy', + 'Spain', + 'Portugal', + 'Japan', +]; + +$row = 2; +foreach ($years as $year) { + foreach ($periods as $period) { + foreach ($countries as $country) { + $endDays = date('t', mktime(0, 0, 0, $period, 1, $year)); + for ($i = 1; $i <= $endDays; ++$i) { + $eDate = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + $year, + $period, + $i + ); + $value = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + $salesValue = $invoiceValue = null; + $incomeOrExpenditure = rand(-1, 1); + if ($incomeOrExpenditure == -1) { + $expenditure = rand(-500, -1000) * (1 + rand(-0.25, +0.25)); + $income = null; + } elseif ($incomeOrExpenditure == 1) { + $expenditure = rand(-500, -1000) * (1 + rand(-0.25, +0.25)); + $income = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + } else { + $expenditure = null; + $income = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + } + $dataArray = [$year, + $period, + $country, + $eDate, + $income, + $expenditure, + ]; + $spreadsheet->getActiveSheet()->fromArray($dataArray, null, 'A' . $row++); + } + } + } +} +--$row; + +// Set styling +$helper->log('Set styling'); +$spreadsheet->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(true); +$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); +$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); +$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); +$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(14); +$spreadsheet->getActiveSheet()->freezePane('A2'); + +// Set autofilter range +$helper->log('Set autofilter range'); +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$spreadsheet->getActiveSheet()->setAutoFilter($spreadsheet->getActiveSheet()->calculateWorksheetDimension()); + +// Set active filters +$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter(); +$helper->log('Set active filters'); +// Filter the Country column on a filter value of countries beginning with the letter U (or Japan) +// We use * as a wildcard, so specify as U* and using a wildcard requires customFilter +$autoFilter->getColumn('C') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'u*' + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +$autoFilter->getColumn('C') + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'japan' + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +// Filter the Date column on a filter value of the first day of every period of the current year +// We us a dateGroup ruletype for this, although it is still a standard filter +foreach ($periods as $period) { + $endDate = date('t', mktime(0, 0, 0, $period, 1, $currentYear)); + + $autoFilter->getColumn('D') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + [ + 'year' => $currentYear, + 'month' => $period, + 'day' => $endDate, + ] + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); +} +// Display only sales values that are blank +// Standard filter, operator equals, and value of NULL +$autoFilter->getColumn('E') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + '' + ); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/10_Autofilter_selection_2.php b/samples/10_Autofilter_selection_2.php new file mode 100644 index 00000000..9b0400de --- /dev/null +++ b/samples/10_Autofilter_selection_2.php @@ -0,0 +1,142 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Create the worksheet +$helper->log('Add data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Financial Year') + ->setCellValue('B1', 'Financial Period') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Date') + ->setCellValue('E1', 'Sales Value') + ->setCellValue('F1', 'Expenditure'); +$startYear = $endYear = $currentYear = date('Y'); +--$startYear; +++$endYear; + +$years = range($startYear, $endYear); +$periods = range(1, 12); +$countries = [ + 'United States', + 'UK', + 'France', + 'Germany', + 'Italy', + 'Spain', + 'Portugal', + 'Japan', +]; + +$row = 2; +foreach ($years as $year) { + foreach ($periods as $period) { + foreach ($countries as $country) { + $endDays = date('t', mktime(0, 0, 0, $period, 1, $year)); + for ($i = 1; $i <= $endDays; ++$i) { + $eDate = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + $year, + $period, + $i + ); + $value = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + $salesValue = $invoiceValue = null; + $incomeOrExpenditure = rand(-1, 1); + if ($incomeOrExpenditure == -1) { + $expenditure = rand(-500, -1000) * (1 + rand(-0.25, +0.25)); + $income = null; + } elseif ($incomeOrExpenditure == 1) { + $expenditure = rand(-500, -1000) * (1 + rand(-0.25, +0.25)); + $income = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + } else { + $expenditure = null; + $income = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + } + $dataArray = [$year, + $period, + $country, + $eDate, + $income, + $expenditure, + ]; + $spreadsheet->getActiveSheet()->fromArray($dataArray, null, 'A' . $row++); + } + } + } +} +--$row; + +// Set styling +$helper->log('Set styling'); +$spreadsheet->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(true); +$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); +$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); +$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); +$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(14); +$spreadsheet->getActiveSheet()->freezePane('A2'); + +// Set autofilter range +$helper->log('Set autofilter range'); +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$spreadsheet->getActiveSheet()->setAutoFilter($spreadsheet->getActiveSheet()->calculateWorksheetDimension()); + +// Set active filters +$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter(); +$helper->log('Set active filters'); +// Filter the Country column on a filter value of Germany +// As it's just a simple value filter, we can use FILTERTYPE_FILTER +$autoFilter->getColumn('C') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'Germany' + ); +// Filter the Date column on a filter value of the year to date +$autoFilter->getColumn('D') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + null, + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); +// Display only sales values that are between 400 and 600 +$autoFilter->getColumn('E') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, + 400 + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +$autoFilter->getColumn('E') + ->setJoin(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, + 600 + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/10_Autofilter_selection_display.php b/samples/10_Autofilter_selection_display.php new file mode 100644 index 00000000..22d88461 --- /dev/null +++ b/samples/10_Autofilter_selection_display.php @@ -0,0 +1,165 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Create the worksheet +$helper->log('Add data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Financial Year') + ->setCellValue('B1', 'Financial Period') + ->setCellValue('C1', 'Country') + ->setCellValue('D1', 'Date') + ->setCellValue('E1', 'Sales Value') + ->setCellValue('F1', 'Expenditure'); +$startYear = $endYear = $currentYear = date('Y'); +--$startYear; +++$endYear; + +$years = range($startYear, $endYear); +$periods = range(1, 12); +$countries = [ + 'United States', + 'UK', + 'France', + 'Germany', + 'Italy', + 'Spain', + 'Portugal', + 'Japan', +]; + +$row = 2; +foreach ($years as $year) { + foreach ($periods as $period) { + foreach ($countries as $country) { + $endDays = date('t', mktime(0, 0, 0, $period, 1, $year)); + for ($i = 1; $i <= $endDays; ++$i) { + $eDate = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + $year, + $period, + $i + ); + $value = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + $salesValue = $invoiceValue = null; + $incomeOrExpenditure = rand(-1, 1); + if ($incomeOrExpenditure == -1) { + $expenditure = rand(-500, -1000) * (1 + rand(-0.25, +0.25)); + $income = null; + } elseif ($incomeOrExpenditure == 1) { + $expenditure = rand(-500, -1000) * (1 + rand(-0.25, +0.25)); + $income = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + } else { + $expenditure = null; + $income = rand(500, 1000) * (1 + rand(-0.25, +0.25)); + } + $dataArray = [$year, + $period, + $country, + $eDate, + $income, + $expenditure, + ]; + $spreadsheet->getActiveSheet()->fromArray($dataArray, null, 'A' . $row++); + } + } + } +} +--$row; + +// Set styling +$helper->log('Set styling'); +$spreadsheet->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(true); +$spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); +$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); +$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); +$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(14); +$spreadsheet->getActiveSheet()->freezePane('A2'); + +// Set autofilter range +$helper->log('Set autofilter range'); +// Always include the complete filter range! +// Excel does support setting only the caption +// row, but that's not a best practise... +$spreadsheet->getActiveSheet()->setAutoFilter($spreadsheet->getActiveSheet()->calculateWorksheetDimension()); + +// Set active filters +$autoFilter = $spreadsheet->getActiveSheet()->getAutoFilter(); +$helper->log('Set active filters'); +// Filter the Country column on a filter value of countries beginning with the letter U (or Japan) +// We use * as a wildcard, so specify as U* and using a wildcard requires customFilter +$autoFilter->getColumn('C') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'u*' + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +$autoFilter->getColumn('C') + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + 'japan' + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); +// Filter the Date column on a filter value of the first day of every period of the current year +// We us a dateGroup ruletype for this, although it is still a standard filter +foreach ($periods as $period) { + $endDate = date('t', mktime(0, 0, 0, $period, 1, $currentYear)); + + $autoFilter->getColumn('D') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + [ + 'year' => $currentYear, + 'month' => $period, + 'day' => $endDate, + ] + ) + ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); +} +// Display only sales values that are blank +// Standard filter, operator equals, and value of NULL +$autoFilter->getColumn('E') + ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->createRule() + ->setRule( + \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + '' + ); + +// Execute filtering +$helper->log('Execute filtering'); +$autoFilter->showHideRows(); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +// Display Results of filtering +$helper->log('Display filtered rows'); +foreach ($spreadsheet->getActiveSheet()->getRowIterator() as $row) { + if ($spreadsheet->getActiveSheet()->getRowDimension($row->getRowIndex())->getVisible()) { + echo ' Row number - ', $row->getRowIndex(), ' '; + echo $spreadsheet->getActiveSheet()->getCell('C' . $row->getRowIndex())->getValue(), ' '; + echo $spreadsheet->getActiveSheet()->getCell('D' . $row->getRowIndex())->getFormattedValue(), ' '; + echo EOL; + } +} diff --git a/samples/11_Documentsecurity.php b/samples/11_Documentsecurity.php new file mode 100644 index 00000000..1479620c --- /dev/null +++ b/samples/11_Documentsecurity.php @@ -0,0 +1,46 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Hello'); +$spreadsheet->getActiveSheet()->setCellValue('B2', 'world!'); +$spreadsheet->getActiveSheet()->setCellValue('C1', 'Hello'); +$spreadsheet->getActiveSheet()->setCellValue('D2', 'world!'); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Simple'); + +// Set document security +$helper->log('Set document security'); +$spreadsheet->getSecurity()->setLockWindows(true); +$spreadsheet->getSecurity()->setLockStructure(true); +$spreadsheet->getSecurity()->setWorkbookPassword('PhpSpreadsheet'); + +// Set sheet security +$helper->log('Set sheet security'); +$spreadsheet->getActiveSheet()->getProtection()->setPassword('PhpSpreadsheet'); +$spreadsheet->getActiveSheet()->getProtection()->setSheet(true); // This should be enabled in order to enable any of the following! +$spreadsheet->getActiveSheet()->getProtection()->setSort(true); +$spreadsheet->getActiveSheet()->getProtection()->setInsertRows(true); +$spreadsheet->getActiveSheet()->getProtection()->setFormatCells(true); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/12_CellProtection.php b/samples/12_CellProtection.php new file mode 100644 index 00000000..c3eec91a --- /dev/null +++ b/samples/12_CellProtection.php @@ -0,0 +1,44 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Mark Baker') + ->setLastModifiedBy('Mark Baker') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Crouching'); +$spreadsheet->getActiveSheet()->setCellValue('B1', 'Tiger'); +$spreadsheet->getActiveSheet()->setCellValue('A2', 'Hidden'); +$spreadsheet->getActiveSheet()->setCellValue('B2', 'Dragon'); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Simple'); + +// Set document security +$helper->log('Set cell protection'); + +// Set sheet security +$helper->log('Set sheet security'); +$spreadsheet->getActiveSheet()->getProtection()->setSheet(true); +$spreadsheet->getActiveSheet() + ->getStyle('A2:B2') + ->getProtection()->setLocked( + \PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED + ); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/13_Calculation.php b/samples/13_Calculation.php new file mode 100644 index 00000000..cea7ae77 --- /dev/null +++ b/samples/13_Calculation.php @@ -0,0 +1,175 @@ +<?php + +mt_srand(1234567890); + +require __DIR__ . '/Header.php'; + +// List functions +$helper->log('List implemented functions'); +$calc = \PhpSpreadsheet\Calculation::getInstance(); +print_r($calc->listFunctionNames()); + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Add some data, we will use some formulas here +$helper->log('Add some data and formulas'); +$spreadsheet->getActiveSheet()->setCellValue('A14', 'Count:') + ->setCellValue('A15', 'Sum:') + ->setCellValue('A16', 'Max:') + ->setCellValue('A17', 'Min:') + ->setCellValue('A18', 'Average:') + ->setCellValue('A19', 'Median:') + ->setCellValue('A20', 'Mode:'); + +$spreadsheet->getActiveSheet()->setCellValue('A22', 'CountA:') + ->setCellValue('A23', 'MaxA:') + ->setCellValue('A24', 'MinA:'); + +$spreadsheet->getActiveSheet()->setCellValue('A26', 'StDev:') + ->setCellValue('A27', 'StDevA:') + ->setCellValue('A28', 'StDevP:') + ->setCellValue('A29', 'StDevPA:'); + +$spreadsheet->getActiveSheet()->setCellValue('A31', 'DevSq:') + ->setCellValue('A32', 'Var:') + ->setCellValue('A33', 'VarA:') + ->setCellValue('A34', 'VarP:') + ->setCellValue('A35', 'VarPA:'); + +$spreadsheet->getActiveSheet()->setCellValue('A37', 'Date:'); + +$spreadsheet->getActiveSheet()->setCellValue('B1', 'Range 1') + ->setCellValue('B2', 2) + ->setCellValue('B3', 8) + ->setCellValue('B4', 10) + ->setCellValue('B5', true) + ->setCellValue('B6', false) + ->setCellValue('B7', 'Text String') + ->setCellValue('B9', '22') + ->setCellValue('B10', 4) + ->setCellValue('B11', 6) + ->setCellValue('B12', 12); + +$spreadsheet->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)') + ->setCellValue('B15', '=SUM(B2:B12)') + ->setCellValue('B16', '=MAX(B2:B12)') + ->setCellValue('B17', '=MIN(B2:B12)') + ->setCellValue('B18', '=AVERAGE(B2:B12)') + ->setCellValue('B19', '=MEDIAN(B2:B12)') + ->setCellValue('B20', '=MODE(B2:B12)'); + +$spreadsheet->getActiveSheet()->setCellValue('B22', '=COUNTA(B2:B12)') + ->setCellValue('B23', '=MAXA(B2:B12)') + ->setCellValue('B24', '=MINA(B2:B12)'); + +$spreadsheet->getActiveSheet()->setCellValue('B26', '=STDEV(B2:B12)') + ->setCellValue('B27', '=STDEVA(B2:B12)') + ->setCellValue('B28', '=STDEVP(B2:B12)') + ->setCellValue('B29', '=STDEVPA(B2:B12)'); + +$spreadsheet->getActiveSheet()->setCellValue('B31', '=DEVSQ(B2:B12)') + ->setCellValue('B32', '=VAR(B2:B12)') + ->setCellValue('B33', '=VARA(B2:B12)') + ->setCellValue('B34', '=VARP(B2:B12)') + ->setCellValue('B35', '=VARPA(B2:B12)'); + +$spreadsheet->getActiveSheet()->setCellValue('B37', '=DATE(2007, 12, 21)') + ->setCellValue('B38', '=DATEDIF( DATE(2007, 12, 21), DATE(2007, 12, 22), "D" )') + ->setCellValue('B39', '=DATEVALUE("01-Feb-2006 10:06 AM")') + ->setCellValue('B40', '=DAY( DATE(2006, 1, 2) )') + ->setCellValue('B41', '=DAYS360( DATE(2002, 2, 3), DATE(2005, 5, 31) )'); + +$spreadsheet->getActiveSheet()->setCellValue('C1', 'Range 2') + ->setCellValue('C2', 1) + ->setCellValue('C3', 2) + ->setCellValue('C4', 2) + ->setCellValue('C5', 3) + ->setCellValue('C6', 3) + ->setCellValue('C7', 3) + ->setCellValue('C8', '0') + ->setCellValue('C9', 4) + ->setCellValue('C10', 4) + ->setCellValue('C11', 4) + ->setCellValue('C12', 4); + +$spreadsheet->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)') + ->setCellValue('C15', '=SUM(C2:C12)') + ->setCellValue('C16', '=MAX(C2:C12)') + ->setCellValue('C17', '=MIN(C2:C12)') + ->setCellValue('C18', '=AVERAGE(C2:C12)') + ->setCellValue('C19', '=MEDIAN(C2:C12)') + ->setCellValue('C20', '=MODE(C2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('C22', '=COUNTA(C2:C12)') + ->setCellValue('C23', '=MAXA(C2:C12)') + ->setCellValue('C24', '=MINA(C2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('C26', '=STDEV(C2:C12)') + ->setCellValue('C27', '=STDEVA(C2:C12)') + ->setCellValue('C28', '=STDEVP(C2:C12)') + ->setCellValue('C29', '=STDEVPA(C2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('C31', '=DEVSQ(C2:C12)') + ->setCellValue('C32', '=VAR(C2:C12)') + ->setCellValue('C33', '=VARA(C2:C12)') + ->setCellValue('C34', '=VARP(C2:C12)') + ->setCellValue('C35', '=VARPA(C2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('D1', 'Range 3') + ->setCellValue('D2', 2) + ->setCellValue('D3', 3) + ->setCellValue('D4', 4); + +$spreadsheet->getActiveSheet()->setCellValue('D14', '=((D2 * D3) + D4) & " should be 10"'); + +$spreadsheet->getActiveSheet()->setCellValue('E12', 'Other functions') + ->setCellValue('E14', '=PI()') + ->setCellValue('E15', '=RAND()') + ->setCellValue('E16', '=RANDBETWEEN(5, 10)'); + +$spreadsheet->getActiveSheet()->setCellValue('E17', 'Count of both ranges:') + ->setCellValue('F17', '=COUNT(B2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('E18', 'Total of both ranges:') + ->setCellValue('F18', '=SUM(B2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('E19', 'Maximum of both ranges:') + ->setCellValue('F19', '=MAX(B2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('E20', 'Minimum of both ranges:') + ->setCellValue('F20', '=MIN(B2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('E21', 'Average of both ranges:') + ->setCellValue('F21', '=AVERAGE(B2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('E22', 'Median of both ranges:') + ->setCellValue('F22', '=MEDIAN(B2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('E23', 'Mode of both ranges:') + ->setCellValue('F23', '=MODE(B2:C12)'); + +// Calculated data +$helper->log('Calculated data'); +for ($col = 'B'; $col != 'G'; ++$col) { + for ($row = 14; $row <= 41; ++$row) { + if ((!is_null($formula = $spreadsheet->getActiveSheet()->getCell($col . $row)->getValue())) && + ($formula[0] == '=')) { + echo 'Value of ', $col, $row, ' [', $formula, ']: ', + $spreadsheet->getActiveSheet()->getCell($col . $row)->getCalculatedValue() . EOL; + } + } +} + +// +// If we set Pre Calculated Formulas to true then PhpSpreadsheet will calculate all formulae in the +// workbook before saving. This adds time and memory overhead, and can cause some problems with formulae +// using functions or features (such as array formulae) that aren't yet supported by the calculation engine +// If the value is false (the default) for the Excel2007 Writer, then MS Excel (or the application used to +// open the file) will need to recalculate values itself to guarantee that the correct results are available. +// +//$writer->setPreCalculateFormulas(true); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/13_CalculationCyclicFormulae.php b/samples/13_CalculationCyclicFormulae.php new file mode 100644 index 00000000..8b8719e8 --- /dev/null +++ b/samples/13_CalculationCyclicFormulae.php @@ -0,0 +1,31 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Add some data, we will use some formulas here +$helper->log('Add some data and formulas'); +$spreadsheet->getActiveSheet()->setCellValue('A1', '=B1') + ->setCellValue('A2', '=B2+1') + ->setCellValue('B1', '=A1+1') + ->setCellValue('B2', '=A2'); + +\PhpSpreadsheet\Calculation::getInstance($spreadsheet)->cyclicFormulaCount = 100; + +// Calculated data +$helper->log('Calculated data'); +for ($row = 1; $row <= 2; ++$row) { + for ($col = 'A'; $col != 'C'; ++$col) { + if ((!is_null($formula = $spreadsheet->getActiveSheet()->getCell($col . $row)->getValue())) && + ($formula[0] == '=')) { + echo 'Value of ', $col, $row, ' [', $formula, ']: ', + $spreadsheet->getActiveSheet()->getCell($col . $row)->getCalculatedValue() . EOL; + } + } +} + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/14_Excel5.php b/samples/14_Excel5.php new file mode 100644 index 00000000..61dfea71 --- /dev/null +++ b/samples/14_Excel5.php @@ -0,0 +1,11 @@ +<?php + +require __DIR__ . '/Header.php'; +$spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; + +$filename = $helper->getFilename(__FILE__, 'xls'); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); + +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/15_Datavalidation.php b/samples/15_Datavalidation.php new file mode 100644 index 00000000..5ceb1fc4 --- /dev/null +++ b/samples/15_Datavalidation.php @@ -0,0 +1,77 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Create a first sheet +$helper->log('Add data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Cell B3 and B5 contain data validation...') + ->setCellValue('A3', 'Number:') + ->setCellValue('B3', '10') + ->setCellValue('A5', 'List:') + ->setCellValue('B5', 'Item A') + ->setCellValue('A7', 'List #2:') + ->setCellValue('B7', 'Item #2') + ->setCellValue('D2', 'Item #1') + ->setCellValue('D3', 'Item #2') + ->setCellValue('D4', 'Item #3') + ->setCellValue('D5', 'Item #4') + ->setCellValue('D6', 'Item #5'); + +// Set data validation +$helper->log('Set data validation'); +$validation = $spreadsheet->getActiveSheet()->getCell('B3')->getDataValidation(); +$validation->setType(\PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE); +$validation->setErrorStyle(\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP); +$validation->setAllowBlank(true); +$validation->setShowInputMessage(true); +$validation->setShowErrorMessage(true); +$validation->setErrorTitle('Input error'); +$validation->setError('Only numbers between 10 and 20 are allowed!'); +$validation->setPromptTitle('Allowed input'); +$validation->setPrompt('Only numbers between 10 and 20 are allowed.'); +$validation->setFormula1(10); +$validation->setFormula2(20); + +$validation = $spreadsheet->getActiveSheet()->getCell('B5')->getDataValidation(); +$validation->setType(\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST); +$validation->setErrorStyle(\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION); +$validation->setAllowBlank(false); +$validation->setShowInputMessage(true); +$validation->setShowErrorMessage(true); +$validation->setShowDropDown(true); +$validation->setErrorTitle('Input error'); +$validation->setError('Value is not in list.'); +$validation->setPromptTitle('Pick from list'); +$validation->setPrompt('Please pick a value from the drop-down list.'); +$validation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " if your list is simply a comma-separated list of values !!! + +$validation = $spreadsheet->getActiveSheet()->getCell('B7')->getDataValidation(); +$validation->setType(\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST); +$validation->setErrorStyle(\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION); +$validation->setAllowBlank(false); +$validation->setShowInputMessage(true); +$validation->setShowErrorMessage(true); +$validation->setShowDropDown(true); +$validation->setErrorTitle('Input error'); +$validation->setError('Value is not in list.'); +$validation->setPromptTitle('Pick from list'); +$validation->setPrompt('Please pick a value from the drop-down list.'); +$validation->setFormula1('$D$2:$D$6'); // Make sure NOT to put a range of cells or a formula between " and " + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/16_Csv.php b/samples/16_Csv.php new file mode 100644 index 00000000..ed0fd7b3 --- /dev/null +++ b/samples/16_Csv.php @@ -0,0 +1,36 @@ +<?php + +require __DIR__ . '/Header.php'; +$spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; + +$helper->log('Write to CSV format'); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'CSV')->setDelimiter(',') + ->setEnclosure('"') + ->setSheetIndex(0); + +$callStartTime = microtime(true); +$filename = $helper->getTemporaryFilename('csv'); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); + +$helper->log('Read from CSV format'); + +$reader = \PhpSpreadsheet\IOFactory::createReader('CSV')->setDelimiter(',') + ->setEnclosure('"') + ->setSheetIndex(0); + +$callStartTime = microtime(true); +$spreadsheetFromCSV = $reader->load($filename); +$helper->logRead('CSV', $filename, $callStartTime); + +// Write Excel2007 +$helper->write($spreadsheetFromCSV, __FILE__, ['Excel2007' => 'xlsx']); + +// Write CSV +$filenameCSV = $helper->getFilename(__FILE__, 'csv'); +$writerCSV = \PhpSpreadsheet\IOFactory::createWriter($spreadsheetFromCSV, 'CSV'); +$writerCSV->setExcelCompatibility(true); + +$callStartTime = microtime(true); +$writerCSV->save($filenameCSV); +$helper->logWrite($writerCSV, $filenameCSV, $callStartTime); diff --git a/samples/17_Html.php b/samples/17_Html.php new file mode 100644 index 00000000..c7d33a00 --- /dev/null +++ b/samples/17_Html.php @@ -0,0 +1,11 @@ +<?php + +require __DIR__ . '/Header.php'; +$spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; + +$filename = $helper->getFilename(__FILE__, 'html'); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'HTML'); + +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/18_Extendedcalculation.php b/samples/18_Extendedcalculation.php new file mode 100644 index 00000000..7f51a14f --- /dev/null +++ b/samples/18_Extendedcalculation.php @@ -0,0 +1,67 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +// List functions +$helper->log('List implemented functions'); +$calc = \PhpSpreadsheet\Calculation::getInstance(); +print_r($calc->listFunctionNames()); + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Add some data, we will use some formulas here +$helper->log('Add some data'); +$spreadsheet->getActiveSheet()->setCellValue('A14', 'Count:'); + +$spreadsheet->getActiveSheet()->setCellValue('B1', 'Range 1'); +$spreadsheet->getActiveSheet()->setCellValue('B2', 2); +$spreadsheet->getActiveSheet()->setCellValue('B3', 8); +$spreadsheet->getActiveSheet()->setCellValue('B4', 10); +$spreadsheet->getActiveSheet()->setCellValue('B5', true); +$spreadsheet->getActiveSheet()->setCellValue('B6', false); +$spreadsheet->getActiveSheet()->setCellValue('B7', 'Text String'); +$spreadsheet->getActiveSheet()->setCellValue('B9', '22'); +$spreadsheet->getActiveSheet()->setCellValue('B10', 4); +$spreadsheet->getActiveSheet()->setCellValue('B11', 6); +$spreadsheet->getActiveSheet()->setCellValue('B12', 12); + +$spreadsheet->getActiveSheet()->setCellValue('B14', '=COUNT(B2:B12)'); + +$spreadsheet->getActiveSheet()->setCellValue('C1', 'Range 2'); +$spreadsheet->getActiveSheet()->setCellValue('C2', 1); +$spreadsheet->getActiveSheet()->setCellValue('C3', 2); +$spreadsheet->getActiveSheet()->setCellValue('C4', 2); +$spreadsheet->getActiveSheet()->setCellValue('C5', 3); +$spreadsheet->getActiveSheet()->setCellValue('C6', 3); +$spreadsheet->getActiveSheet()->setCellValue('C7', 3); +$spreadsheet->getActiveSheet()->setCellValue('C8', '0'); +$spreadsheet->getActiveSheet()->setCellValue('C9', 4); +$spreadsheet->getActiveSheet()->setCellValue('C10', 4); +$spreadsheet->getActiveSheet()->setCellValue('C11', 4); +$spreadsheet->getActiveSheet()->setCellValue('C12', 4); + +$spreadsheet->getActiveSheet()->setCellValue('C14', '=COUNT(C2:C12)'); + +$spreadsheet->getActiveSheet()->setCellValue('D1', 'Range 3'); +$spreadsheet->getActiveSheet()->setCellValue('D2', 2); +$spreadsheet->getActiveSheet()->setCellValue('D3', 3); +$spreadsheet->getActiveSheet()->setCellValue('D4', 4); + +$spreadsheet->getActiveSheet()->setCellValue('D5', '=((D2 * D3) + D4) & " should be 10"'); + +$spreadsheet->getActiveSheet()->setCellValue('E1', 'Other functions'); +$spreadsheet->getActiveSheet()->setCellValue('E2', '=PI()'); +$spreadsheet->getActiveSheet()->setCellValue('E3', '=RAND()'); +$spreadsheet->getActiveSheet()->setCellValue('E4', '=RANDBETWEEN(5, 10)'); + +$spreadsheet->getActiveSheet()->setCellValue('E14', 'Count of both ranges:'); +$spreadsheet->getActiveSheet()->setCellValue('F14', '=COUNT(B2:C12)'); + +// Calculated data +$helper->log('Calculated data'); +echo 'Value of B14 [=COUNT(B2:B12)]: ' . $spreadsheet->getActiveSheet()->getCell('B14')->getCalculatedValue() . "\r\n"; + +$helper->logEndingNotes(); diff --git a/samples/19_Namedrange.php b/samples/19_Namedrange.php new file mode 100644 index 00000000..add02535 --- /dev/null +++ b/samples/19_Namedrange.php @@ -0,0 +1,67 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Firstname:') + ->setCellValue('A2', 'Lastname:') + ->setCellValue('A3', 'Fullname:') + ->setCellValue('B1', 'Maarten') + ->setCellValue('B2', 'Balliauw') + ->setCellValue('B3', '=B1 & " " & B2'); + +// Define named ranges +$helper->log('Define named ranges'); +$spreadsheet->addNamedRange(new \PhpSpreadsheet\NamedRange('PersonName', $spreadsheet->getActiveSheet(), 'B1')); +$spreadsheet->addNamedRange(new \PhpSpreadsheet\NamedRange('PersonLN', $spreadsheet->getActiveSheet(), 'B2')); + +// Rename named ranges +$helper->log('Rename named ranges'); +$spreadsheet->getNamedRange('PersonName')->setName('PersonFN'); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Person'); + +// Create a new worksheet, after the default sheet +$helper->log('Create new Worksheet object'); +$spreadsheet->createSheet(); + +// Add some data to the second sheet, resembling some different data types +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(1); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Firstname:') + ->setCellValue('A2', 'Lastname:') + ->setCellValue('A3', 'Fullname:') + ->setCellValue('B1', '=PersonFN') + ->setCellValue('B2', '=PersonLN') + ->setCellValue('B3', '=PersonFN & " " & PersonLN'); + +// Resolve range +$helper->log('Resolve range'); +$helper->log('Cell B1 {=PersonFN}: ' . $spreadsheet->getActiveSheet()->getCell('B1')->getCalculatedValue()); +$helper->log('Cell B3 {=PersonFN & " " & PersonLN}: ' . $spreadsheet->getActiveSheet()->getCell('B3')->getCalculatedValue()); +$helper->log('Cell Person!B1: ' . $spreadsheet->getActiveSheet()->getCell('Person!B1')->getCalculatedValue()); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Person (cloned)'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/20_Read_Excel2003XML.php b/samples/20_Read_Excel2003XML.php new file mode 100644 index 00000000..88b5f3f7 --- /dev/null +++ b/samples/20_Read_Excel2003XML.php @@ -0,0 +1,11 @@ +<?php + +require __DIR__ . '/Header.php'; + +$filename = __DIR__ . '/templates/Excel2003XMLTest.xml'; +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('Excel2003XML', $filename, $callStartTime); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/20_Read_Excel5.php b/samples/20_Read_Excel5.php new file mode 100644 index 00000000..0247e428 --- /dev/null +++ b/samples/20_Read_Excel5.php @@ -0,0 +1,20 @@ +<?php + +require __DIR__ . '/Header.php'; + +$spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; + +// Write temporary file +$filename = $helper->getTemporaryFilename('xls'); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); + +// Read Excel5 file +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('Excel5', $filename, $callStartTime); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/20_Read_Gnumeric.php b/samples/20_Read_Gnumeric.php new file mode 100644 index 00000000..76606b07 --- /dev/null +++ b/samples/20_Read_Gnumeric.php @@ -0,0 +1,11 @@ +<?php + +require __DIR__ . '/Header.php'; + +$filename = __DIR__ . '/templates/GnumericTest.gnumeric'; +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('Gnumeric', $filename, $callStartTime); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/20_Read_OOCalc.php b/samples/20_Read_OOCalc.php new file mode 100644 index 00000000..77f744bd --- /dev/null +++ b/samples/20_Read_OOCalc.php @@ -0,0 +1,11 @@ +<?php + +require __DIR__ . '/Header.php'; + +$filename = __DIR__ . '/templates/OOCalcTest.ods'; +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('OOCalc', $filename, $callStartTime); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/20_Read_OOCalc_with_PCLZip.php b/samples/20_Read_OOCalc_with_PCLZip.php new file mode 100644 index 00000000..ce64d2b2 --- /dev/null +++ b/samples/20_Read_OOCalc_with_PCLZip.php @@ -0,0 +1,14 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file +PhpSpreadsheet\Settings::setZipClass(PhpSpreadsheet\Settings::PCLZIP); + +$filename = __DIR__ . '/templates/OOCalcTest.ods'; +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('OOCalc', $filename, $callStartTime); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/20_Read_Sylk.php b/samples/20_Read_Sylk.php new file mode 100644 index 00000000..c87285ce --- /dev/null +++ b/samples/20_Read_Sylk.php @@ -0,0 +1,11 @@ +<?php + +require __DIR__ . '/Header.php'; + +$filename = __DIR__ . '/templates/SylkTest.slk'; +$callStartTime = microtime(true); +$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$helper->logRead('SYLK', $filename, $callStartTime); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/21_Pdf.php b/samples/21_Pdf.php new file mode 100644 index 00000000..0a54383b --- /dev/null +++ b/samples/21_Pdf.php @@ -0,0 +1,29 @@ +<?php + +require __DIR__ . '/Header.php'; +$spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; + +// Change these values to select the Rendering library that you wish to use +// and its directory location on your server +//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererLibrary = 'tcPDF5.9'; +//$rendererLibrary = 'mPDF5.4'; +$rendererLibrary = 'domPDF0.6.0beta3'; +$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; + +$helper->log('Hide grid lines'); +$spreadsheet->getActiveSheet()->setShowGridLines(false); + +$helper->log('Set orientation to landscape'); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); + +$helper->log("Write to PDF format using {$rendererName}"); + +if (!\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { + $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); +} + +// Save +$helper->write($spreadsheet, __FILE__, ['PDF' => 'pdf']); diff --git a/samples/22_Heavily_formatted.php b/samples/22_Heavily_formatted.php new file mode 100644 index 00000000..74e75fd3 --- /dev/null +++ b/samples/22_Heavily_formatted.php @@ -0,0 +1,44 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); + +$spreadsheet->getActiveSheet()->getStyle('A1:T100')->applyFromArray( + ['fill' => [ + 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'color' => ['argb' => 'FFCCFFCC'], + ], + 'borders' => [ + 'bottom' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_THIN], + 'right' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_MEDIUM], + ], + ] +); + +$spreadsheet->getActiveSheet()->getStyle('C5:R95')->applyFromArray( + ['fill' => [ + 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'color' => ['argb' => 'FFFFFF00'], + ], + ] +); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/23_Sharedstyles.php b/samples/23_Sharedstyles.php new file mode 100644 index 00000000..e65bb027 --- /dev/null +++ b/samples/23_Sharedstyles.php @@ -0,0 +1,54 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); + +$sharedStyle1 = new \PhpSpreadsheet\Style(); +$sharedStyle2 = new \PhpSpreadsheet\Style(); + +$sharedStyle1->applyFromArray( + ['fill' => [ + 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'color' => ['argb' => 'FFCCFFCC'], + ], + 'borders' => [ + 'bottom' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_THIN], + 'right' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_MEDIUM], + ], + ] +); + +$sharedStyle2->applyFromArray( + ['fill' => [ + 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'color' => ['argb' => 'FFFFFF00'], + ], + 'borders' => [ + 'bottom' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_THIN], + 'right' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_MEDIUM], + ], + ] +); + +$spreadsheet->getActiveSheet()->duplicateStyle($sharedStyle1, 'A1:T100'); +$spreadsheet->getActiveSheet()->duplicateStyle($sharedStyle2, 'C5:R95'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/24_Readfilter.php b/samples/24_Readfilter.php new file mode 100644 index 00000000..d6cdb5f2 --- /dev/null +++ b/samples/24_Readfilter.php @@ -0,0 +1,38 @@ +<?php + +namespace PhpSpreadsheet; + +require __DIR__ . '/Header.php'; + +// Write temporary file +$largeSpreadsheet = require __DIR__ . '/templates/largeSpreadsheet.php'; +$writer = new \PhpSpreadsheet\Writer\Excel2007($largeSpreadsheet); +$filename = $helper->getTemporaryFilename(); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); + +class MyReadFilter implements \PhpSpreadsheet\Reader\IReadFilter +{ + public function readCell($column, $row, $worksheetName = '') + { + // Read title row and rows 20 - 30 + if ($row == 1 || ($row >= 20 && $row <= 30)) { + return true; + } + + return false; + } +} + +$helper->log('Load from Excel2007 file'); +$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$reader->setReadFilter(new MyReadFilter()); +$callStartTime = microtime(true); +$spreadsheet = $reader->load($filename); +$helper->logRead('Excel2007', $filename, $callStartTime); +$helper->log('Remove unnecessary rows'); +$spreadsheet->getActiveSheet()->removeRow(2, 18); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/25_In_memory_image.php b/samples/25_In_memory_image.php new file mode 100644 index 00000000..1708c89d --- /dev/null +++ b/samples/25_In_memory_image.php @@ -0,0 +1,37 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Generate an image +$helper->log('Generate an image'); +$gdImage = @imagecreatetruecolor(120, 20) or die('Cannot Initialize new GD image stream'); +$textColor = imagecolorallocate($gdImage, 255, 255, 255); +imagestring($gdImage, 1, 5, 5, 'Created with PhpSpreadsheet', $textColor); + +// Add a drawing to the worksheet +$helper->log('Add a drawing to the worksheet'); +$drawing = new \PhpSpreadsheet\Worksheet\MemoryDrawing(); +$drawing->setName('Sample image'); +$drawing->setDescription('Sample image'); +$drawing->setImageResource($gdImage); +$drawing->setRenderingFunction(\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG); +$drawing->setMimeType(\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_DEFAULT); +$drawing->setHeight(36); +$drawing->setWorksheet($spreadsheet->getActiveSheet()); + +// Save +$helper->write($spreadsheet, __FILE__, ['Excel2007' => 'xlsx', 'HTML' => 'html']); diff --git a/samples/26_Utf8.php b/samples/26_Utf8.php new file mode 100644 index 00000000..06c604bd --- /dev/null +++ b/samples/26_Utf8.php @@ -0,0 +1,54 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Change these values to select the PDF Rendering library that you wish to use +// and its directory location on your server +//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererLibrary = 'tcPDF5.9'; +//$rendererLibrary = 'mPDF5.4'; +$rendererLibrary = 'domPDF0.6.0beta3'; +$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; + +// Read from Excel2007 (.xlsx) template +$helper->log('Load Excel2007 template file'); +$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$spreadsheet = $reader->load(__DIR__ . '/templates/26template.xlsx'); + +/* at this point, we could do some manipulations with the template, but we skip this step */ +$helper->write($spreadsheet, __FILE__, ['Excel2007' => 'xlsx', 'Excel5' => 'xls', 'HTML' => 'html']); + +// Export to PDF (.pdf) +$helper->log('Write to PDF format'); +try { + if (!\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { + $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); + } else { + $helper->write($spreadsheet, __FILE__, ['PDF' => 'pdf']); + } +} catch (Exception $e) { + $helper->log('EXCEPTION: ' . $e->getMessage()); +} + +// Remove first two rows with field headers before exporting to CSV +$helper->log('Removing first two heading rows for CSV export'); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->removeRow(1, 2); + +// Export to CSV (.csv) +$helper->log('Write to CSV format'); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'CSV'); +$filename = $helper->getFilename(__FILE__, 'csv'); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); + +// Export to CSV with BOM (.csv) +$filename = str_replace('.csv', '-bom.csv', $filename); +$helper->log('Write to CSV format (with BOM)'); +$writer->setUseBOM(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/27_Images_excel5.php b/samples/27_Images_excel5.php new file mode 100644 index 00000000..d12aa65b --- /dev/null +++ b/samples/27_Images_excel5.php @@ -0,0 +1,11 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Read from Excel5 (.xls) template +$helper->log('Load Excel2007 template file'); +$reader = \PhpSpreadsheet\IOFactory::createReader('Excel5'); +$spreadsheet = $reader->load(__DIR__ . '/templates/27template.xls'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/28_Iterator.php b/samples/28_Iterator.php new file mode 100644 index 00000000..1d2bdb8b --- /dev/null +++ b/samples/28_Iterator.php @@ -0,0 +1,31 @@ +<?php + +require __DIR__ . '/Header.php'; + +$sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; +$filename = $helper->getTemporaryFilename(); +$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); + +$callStartTime = microtime(true); +$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$spreadsheet = $reader->load($filename); +$helper->logRead('Excel2007', $filename, $callStartTime); +$helper->log('Iterate worksheets'); +foreach ($spreadsheet->getWorksheetIterator() as $worksheet) { + $helper->log('Worksheet - ' . $worksheet->getTitle()); + + foreach ($worksheet->getRowIterator() as $row) { + $helper->log(' Row number - ' . $row->getRowIndex()); + + $cellIterator = $row->getCellIterator(); + $cellIterator->setIterateOnlyExistingCells(false); // Loop all cells, even if it is not set + foreach ($cellIterator as $cell) { + if (!is_null($cell)) { + $helper->log(' Cell - ' . $cell->getCoordinate() . ' - ' . $cell->getCalculatedValue()); + } + } + } +} diff --git a/samples/29_Advanced_value_binder.php b/samples/29_Advanced_value_binder.php new file mode 100644 index 00000000..0cca608e --- /dev/null +++ b/samples/29_Advanced_value_binder.php @@ -0,0 +1,129 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +// Set timezone +$helper->log('Set timezone'); +date_default_timezone_set('UTC'); + +// Set value binder +$helper->log('Set value binder'); +\PhpSpreadsheet\Cell::setValueBinder(new \PhpSpreadsheet\Cell\AdvancedValueBinder()); + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Set default font +$helper->log('Set default font'); +$spreadsheet->getActiveSheet()->getDefaultStyle()->getFont()->setName('Arial'); +$spreadsheet->getActiveSheet()->getDefaultStyle()->getFont()->setSize(10); + +// Set column widths +$helper->log('Set column widths'); +$spreadsheet->getActiveSheet()->getColumnDimension('A')->setAutoSize(true); +$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(14); + +// Add some data, resembling some different data types +$helper->log('Add some data'); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'String value:') + ->setCellValue('B1', 'Mark Baker'); + +$spreadsheet->getActiveSheet()->setCellValue('A2', 'Numeric value #1:') + ->setCellValue('B2', 12345); + +$spreadsheet->getActiveSheet()->setCellValue('A3', 'Numeric value #2:') + ->setCellValue('B3', -12.345); + +$spreadsheet->getActiveSheet()->setCellValue('A4', 'Numeric value #3:') + ->setCellValue('B4', .12345); + +$spreadsheet->getActiveSheet()->setCellValue('A5', 'Numeric value #4:') + ->setCellValue('B5', '12345'); + +$spreadsheet->getActiveSheet()->setCellValue('A6', 'Numeric value #5:') + ->setCellValue('B6', '1.2345'); + +$spreadsheet->getActiveSheet()->setCellValue('A7', 'Numeric value #6:') + ->setCellValue('B7', '.12345'); + +$spreadsheet->getActiveSheet()->setCellValue('A8', 'Numeric value #7:') + ->setCellValue('B8', '1.234e-5'); + +$spreadsheet->getActiveSheet()->setCellValue('A9', 'Numeric value #8:') + ->setCellValue('B9', '-1.234e+5'); + +$spreadsheet->getActiveSheet()->setCellValue('A10', 'Boolean value:') + ->setCellValue('B10', 'TRUE'); + +$spreadsheet->getActiveSheet()->setCellValue('A11', 'Percentage value #1:') + ->setCellValue('B11', '10%'); + +$spreadsheet->getActiveSheet()->setCellValue('A12', 'Percentage value #2:') + ->setCellValue('B12', '12.5%'); + +$spreadsheet->getActiveSheet()->setCellValue('A13', 'Fraction value #1:') + ->setCellValue('B13', '-1/2'); + +$spreadsheet->getActiveSheet()->setCellValue('A14', 'Fraction value #2:') + ->setCellValue('B14', '3 1/2'); + +$spreadsheet->getActiveSheet()->setCellValue('A15', 'Fraction value #3:') + ->setCellValue('B15', '-12 3/4'); + +$spreadsheet->getActiveSheet()->setCellValue('A16', 'Fraction value #4:') + ->setCellValue('B16', '13/4'); + +$spreadsheet->getActiveSheet()->setCellValue('A17', 'Currency value #1:') + ->setCellValue('B17', '$12345'); + +$spreadsheet->getActiveSheet()->setCellValue('A18', 'Currency value #2:') + ->setCellValue('B18', '$12345.67'); + +$spreadsheet->getActiveSheet()->setCellValue('A19', 'Currency value #3:') + ->setCellValue('B19', '$12,345.67'); + +$spreadsheet->getActiveSheet()->setCellValue('A20', 'Date value #1:') + ->setCellValue('B20', '21 December 1983'); + +$spreadsheet->getActiveSheet()->setCellValue('A21', 'Date value #2:') + ->setCellValue('B21', '19-Dec-1960'); + +$spreadsheet->getActiveSheet()->setCellValue('A22', 'Date value #3:') + ->setCellValue('B22', '07/12/1982'); + +$spreadsheet->getActiveSheet()->setCellValue('A23', 'Date value #4:') + ->setCellValue('B23', '24-11-1950'); + +$spreadsheet->getActiveSheet()->setCellValue('A24', 'Date value #5:') + ->setCellValue('B24', '17-Mar'); + +$spreadsheet->getActiveSheet()->setCellValue('A25', 'Time value #1:') + ->setCellValue('B25', '01:30'); + +$spreadsheet->getActiveSheet()->setCellValue('A26', 'Time value #2:') + ->setCellValue('B26', '01:30:15'); + +$spreadsheet->getActiveSheet()->setCellValue('A27', 'Date/Time value:') + ->setCellValue('B27', '19-Dec-1960 01:30'); + +$spreadsheet->getActiveSheet()->setCellValue('A28', 'Formula:') + ->setCellValue('B28', '=SUM(B2:B9)'); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Advanced value binder'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/30_Template.php b/samples/30_Template.php new file mode 100644 index 00000000..11f93e87 --- /dev/null +++ b/samples/30_Template.php @@ -0,0 +1,40 @@ +<?php + +require __DIR__ . '/Header.php'; + +$helper->log('Load from Excel5 template'); +$reader = \PhpSpreadsheet\IOFactory::createReader('Excel5'); +$spreadsheet = $reader->load(__DIR__ . '/templates/30template.xls'); + +$helper->log('Add new data to the template'); +$data = [['title' => 'Excel for dummies', + 'price' => 17.99, + 'quantity' => 2, + ], + ['title' => 'PHP for dummies', + 'price' => 15.99, + 'quantity' => 1, + ], + ['title' => 'Inside OOP', + 'price' => 12.95, + 'quantity' => 1, + ], +]; + +$spreadsheet->getActiveSheet()->setCellValue('D1', \PhpSpreadsheet\Shared\Date::PHPToExcel(time())); + +$baseRow = 5; +foreach ($data as $r => $dataRow) { + $row = $baseRow + $r; + $spreadsheet->getActiveSheet()->insertNewRowBefore($row, 1); + + $spreadsheet->getActiveSheet()->setCellValue('A' . $row, $r + 1) + ->setCellValue('B' . $row, $dataRow['title']) + ->setCellValue('C' . $row, $dataRow['price']) + ->setCellValue('D' . $row, $dataRow['quantity']) + ->setCellValue('E' . $row, '=C' . $row . '*D' . $row); +} +$spreadsheet->getActiveSheet()->removeRow($baseRow - 1, 1); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/31_Document_properties_write.php b/samples/31_Document_properties_write.php new file mode 100644 index 00000000..c1b5daf3 --- /dev/null +++ b/samples/31_Document_properties_write.php @@ -0,0 +1,67 @@ +<?php + +require __DIR__ . '/Header.php'; + +$inputFileType = 'Excel2007'; +$inputFileName = __DIR__ . '/templates/31docproperties.xlsx'; + +$spreadsheetReader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); +$callStartTime = microtime(true); +$spreadsheet = $spreadsheetReader->load($inputFileName); +$helper->logRead($inputFileType, $inputFileName, $callStartTime); + +$helper->log('Adjust properties'); +$spreadsheet->getProperties()->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test XLSX document, generated using PhpSpreadsheet') + ->setKeywords('office 2007 openxml php'); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); + +// Echo memory peak usage +$helper->logEndingNotes(); + +// Reread File +$helper->log('Reread Excel2007 file'); +$spreadsheetRead = \PhpSpreadsheet\IOFactory::load($filename); + +// Set properties +$helper->log('Get properties'); + +$helper->log('Core Properties:'); +$helper->log(' Created by - ' . $spreadsheet->getProperties()->getCreator()); +$helper->log(' Created on - ' . date('d-M-Y', $spreadsheet->getProperties()->getCreated()) . ' at ' . date('H:i:s', $spreadsheet->getProperties()->getCreated())); +$helper->log(' Last Modified by - ' . $spreadsheet->getProperties()->getLastModifiedBy()); +$helper->log(' Last Modified on - ' . date('d-M-Y', $spreadsheet->getProperties()->getModified()) . ' at ' . date('H:i:s', $spreadsheet->getProperties()->getModified())); +$helper->log(' Title - ' . $spreadsheet->getProperties()->getTitle()); +$helper->log(' Subject - ' . $spreadsheet->getProperties()->getSubject()); +$helper->log(' Description - ' . $spreadsheet->getProperties()->getDescription()); +$helper->log(' Keywords: - ' . $spreadsheet->getProperties()->getKeywords()); + +$helper->log('Extended (Application) Properties:'); +$helper->log(' Category - ' . $spreadsheet->getProperties()->getCategory()); +$helper->log(' Company - ' . $spreadsheet->getProperties()->getCompany()); +$helper->log(' Manager - ' . $spreadsheet->getProperties()->getManager()); + +$helper->log('Custom Properties:'); +$customProperties = $spreadsheet->getProperties()->getCustomProperties(); +foreach ($customProperties as $customProperty) { + $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty); + $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customProperty); + if ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE) { + $formattedValue = date('d-M-Y H:i:s', $propertyValue); + } elseif ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN) { + $formattedValue = $propertyValue ? 'TRUE' : 'FALSE'; + } else { + $formattedValue = $propertyValue; + } + $helper->log(' ' . $customProperty . ' - (' . $propertyType . ') - ' . $formattedValue); +} + +// Echo memory peak usage +$helper->logEndingNotes(); diff --git a/samples/31_Document_properties_write_xls.php b/samples/31_Document_properties_write_xls.php new file mode 100644 index 00000000..25e750dd --- /dev/null +++ b/samples/31_Document_properties_write_xls.php @@ -0,0 +1,67 @@ +<?php + +require __DIR__ . '/Header.php'; + +$inputFileType = 'Excel5'; +$inputFileName = __DIR__ . '/templates/31docproperties.xls'; + +$spreadsheetReader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); +$callStartTime = microtime(true); +$spreadsheet = $spreadsheetReader->load($inputFileName); +$helper->logRead($inputFileType, $inputFileName, $callStartTime); + +$helper->log('Adjust properties'); +$spreadsheet->getProperties()->setTitle('Office 95 XLS Test Document') + ->setSubject('Office 95 XLS Test Document') + ->setDescription('Test XLS document, generated using PhpSpreadsheet') + ->setKeywords('office 95 biff php'); + +// Save Excel 95 file +$filename = $helper->getFilename(__FILE__, 'xls'); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); + +// Echo memory peak usage +$helper->logEndingNotes(); + +// Reread File +$helper->log('Reread Excel5 file'); +$spreadsheetRead = \PhpSpreadsheet\IOFactory::load($filename); + +// Set properties +$helper->log('Get properties'); + +$helper->log('Core Properties:'); +$helper->log(' Created by - ' . $spreadsheet->getProperties()->getCreator()); +$helper->log(' Created on - ' . date('d-M-Y', $spreadsheet->getProperties()->getCreated()) . ' at ' . date('H:i:s', $spreadsheet->getProperties()->getCreated())); +$helper->log(' Last Modified by - ' . $spreadsheet->getProperties()->getLastModifiedBy()); +$helper->log(' Last Modified on - ' . date('d-M-Y', $spreadsheet->getProperties()->getModified()) . ' at ' . date('H:i:s', $spreadsheet->getProperties()->getModified())); +$helper->log(' Title - ' . $spreadsheet->getProperties()->getTitle()); +$helper->log(' Subject - ' . $spreadsheet->getProperties()->getSubject()); +$helper->log(' Description - ' . $spreadsheet->getProperties()->getDescription()); +$helper->log(' Keywords: - ' . $spreadsheet->getProperties()->getKeywords()); + +$helper->log('Extended (Application) Properties:'); +$helper->log(' Category - ' . $spreadsheet->getProperties()->getCategory()); +$helper->log(' Company - ' . $spreadsheet->getProperties()->getCompany()); +$helper->log(' Manager - ' . $spreadsheet->getProperties()->getManager()); + +$helper->log('Custom Properties:'); +$customProperties = $spreadsheet->getProperties()->getCustomProperties(); +foreach ($customProperties as $customProperty) { + $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty); + $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customProperty); + if ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE) { + $formattedValue = date('d-M-Y H:i:s', $propertyValue); + } elseif ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN) { + $formattedValue = $propertyValue ? 'TRUE' : 'FALSE'; + } else { + $formattedValue = $propertyValue; + } + $helper->log(' ' . $customProperty . ' - (' . $propertyType . ') - ' . $formattedValue); +} + +// Echo memory peak usage +$helper->logEndingNotes(); diff --git a/samples/32_Chart_read_write.php b/samples/32_Chart_read_write.php new file mode 100644 index 00000000..d98edbee --- /dev/null +++ b/samples/32_Chart_read_write.php @@ -0,0 +1,80 @@ +<?php + +require __DIR__ . '/Header.php'; + +$inputFileType = 'Excel2007'; +$inputFileNames = __DIR__ . '/templates/32readwrite*[0-9].xlsx'; + +if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = []; + for ($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = __DIR__ . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach ($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + $helper->log('File ' . $inputFileNameShort . ' does not exist'); + continue; + } + $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader->setIncludeCharts(true); + $callStartTime = microtime(true); + $spreadsheet = $reader->load($inputFileName); + $helper->logRead($inputFileType, $inputFileName, $callStartTime); + + $helper->log('Iterate worksheets looking at the charts'); + foreach ($spreadsheet->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + $helper->log('Worksheet: ', $sheetName); + + $chartNames = $worksheet->getChartNames(); + if (empty($chartNames)) { + $helper->log(' There are no charts in this worksheet'); + } else { + natsort($chartNames); + foreach ($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ', $chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + $helper->log(' ' . $chartName, ' - ', $caption); + $indentation = str_repeat(' ', strlen($chartName) + 3); + $groupCount = $chart->getPlotArea()->getPlotGroupCount(); + if ($groupCount == 1) { + $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + $helper->log($indentation . ' ' . $chartType); + } else { + $chartTypes = []; + for ($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = 'Multiple Plot ' . array_pop($chartTypes); + $helper->log($indentation . ' ' . $chartType); + } elseif (count($chartTypes) == 0) { + $helper->log($indentation . ' *** Type not yet implemented'); + } else { + $helper->log($indentation . ' Combination Chart'); + } + } + } + } + } + + $outputFileName = $helper->getFilename($inputFileName); + $writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); + $writer->setIncludeCharts(true); + $callStartTime = microtime(true); + $writer->save($outputFileName); + $helper->logWrite($writer, $outputFileName, $callStartTime); + + $spreadsheet->disconnectWorksheets(); + unset($spreadsheet); +} diff --git a/samples/32_Chart_read_write_HTML.php b/samples/32_Chart_read_write_HTML.php new file mode 100644 index 00000000..c34caf5b --- /dev/null +++ b/samples/32_Chart_read_write_HTML.php @@ -0,0 +1,94 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Change these values to select the Rendering library that you wish to use +// and its directory location on your server +$rendererName = PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; +$rendererLibrary = 'jpgraph3.5.0b1/src/'; +$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; + +if (!PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { + $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); + + return; +} + +$inputFileType = 'Excel2007'; +$inputFileNames = __DIR__ . '/templates/36write*.xlsx'; + +if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = []; + for ($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = __DIR__ . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach ($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + $helper->log('File ' . $inputFileNameShort . ' does not exist'); + continue; + } + + $helper->log("Load Test from $inputFileType file " . $inputFileNameShort); + + $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader->setIncludeCharts(true); + $spreadsheet = $reader->load($inputFileName); + + $helper->log('Iterate worksheets looking at the charts'); + foreach ($spreadsheet->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + echo 'Worksheet: ', $sheetName, EOL; + + $chartNames = $worksheet->getChartNames(); + if (empty($chartNames)) { + echo ' There are no charts in this worksheet', EOL; + } else { + natsort($chartNames); + foreach ($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ', $chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + echo ' ', $chartName, ' - ', $caption, EOL; + echo str_repeat(' ', strlen($chartName) + 3); + $groupCount = $chart->getPlotArea()->getPlotGroupCount(); + if ($groupCount == 1) { + $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + echo ' ', $chartType, EOL; + } else { + $chartTypes = []; + for ($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = 'Multiple Plot ' . array_pop($chartTypes); + echo ' ', $chartType, EOL; + } elseif (count($chartTypes) == 0) { + echo ' *** Type not yet implemented', EOL; + } else { + echo ' Combination Chart', EOL; + } + } + } + } + } + + // Save + $filename = $helper->getFilename($inputFileName); + $writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'HTML'); + $writer->setIncludeCharts(true); + $callStartTime = microtime(true); + $writer->save($filename); + $helper->logWrite($writer, $filename, $callStartTime); + + $spreadsheet->disconnectWorksheets(); + unset($spreadsheet); +} diff --git a/samples/32_Chart_read_write_PDF.php b/samples/32_Chart_read_write_PDF.php new file mode 100644 index 00000000..44496383 --- /dev/null +++ b/samples/32_Chart_read_write_PDF.php @@ -0,0 +1,110 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Change these values to select the Rendering library that you wish to use +// for PDF files, and its directory location on your server +//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererLibrary = 'tcPDF5.9'; +$rendererLibrary = 'mPDF5.4'; +//$rendererLibrary = 'domPDF0.6.0beta3'; +$rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; + +if (!PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { + $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); + + return; +} + +// Change these values to select the Rendering library that you wish to use +// for Chart images, and its directory location on your server +$rendererName = PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; +$rendererLibrary = 'jpgraph3.5.0b1/src/'; +$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; + +if (!PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { + $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); + + return; +} + +$inputFileType = 'Excel2007'; +$inputFileNames = __DIR__ . '/templates/36write*.xlsx'; + +if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = []; + for ($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = __DIR__ . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach ($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + $helper->log('File ' . $inputFileNameShort . ' does not exist'); + continue; + } + + $helper->log("Load Test from $inputFileType file " . $inputFileNameShort); + + $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader->setIncludeCharts(true); + $spreadsheet = $reader->load($inputFileName); + + $helper->log('Iterate worksheets looking at the charts'); + foreach ($spreadsheet->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + echo 'Worksheet: ', $sheetName, EOL; + + $chartNames = $worksheet->getChartNames(); + if (empty($chartNames)) { + echo ' There are no charts in this worksheet', EOL; + } else { + natsort($chartNames); + foreach ($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ', $chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + echo ' ', $chartName, ' - ', $caption, EOL; + echo str_repeat(' ', strlen($chartName) + 3); + $groupCount = $chart->getPlotArea()->getPlotGroupCount(); + if ($groupCount == 1) { + $chartType = $chart->getPlotArea()->getPlotGroupByIndex(0)->getPlotType(); + echo ' ', $chartType, EOL; + } else { + $chartTypes = []; + for ($i = 0; $i < $groupCount; ++$i) { + $chartTypes[] = $chart->getPlotArea()->getPlotGroupByIndex($i)->getPlotType(); + } + $chartTypes = array_unique($chartTypes); + if (count($chartTypes) == 1) { + $chartType = 'Multiple Plot ' . array_pop($chartTypes); + echo ' ', $chartType, EOL; + } elseif (count($chartTypes) == 0) { + echo ' *** Type not yet implemented', EOL; + } else { + echo ' Combination Chart', EOL; + } + } + } + } + } + + // Save + $filename = $helper->getFilename($inputFileName); + $writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'PDF'); + $writer->setIncludeCharts(true); + $callStartTime = microtime(true); + $writer->save($filename); + $helper->logWrite($writer, $filename, $callStartTime); + + $spreadsheet->disconnectWorksheets(); + unset($spreadsheet); +} diff --git a/samples/33_Chart_create_area.php b/samples/33_Chart_create_area.php new file mode 100644 index 00000000..614b8627 --- /dev/null +++ b/samples/33_Chart_create_area.php @@ -0,0 +1,96 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test %age-Stacked Area Chart'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_bar.php b/samples/33_Chart_create_bar.php new file mode 100644 index 00000000..7842dc32 --- /dev/null +++ b/samples/33_Chart_create_bar.php @@ -0,0 +1,14 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = require __DIR__ . '/templates/chartSpreadsheet.php'; + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_bar_stacked.php b/samples/33_Chart_create_bar_stacked.php new file mode 100644 index 00000000..b1b62eb5 --- /dev/null +++ b/samples/33_Chart_create_bar_stacked.php @@ -0,0 +1,99 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_STACKED, // plotGrouping + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a horizontal bar rather than a vertical column graph +$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_BAR); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Chart'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_column.php b/samples/33_Chart_create_column.php new file mode 100644 index 00000000..6bec5bcb --- /dev/null +++ b/samples/33_Chart_create_column.php @@ -0,0 +1,99 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Column Chart'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_column_2.php b/samples/33_Chart_create_column_2.php new file mode 100644 index 00000000..2d64cc7e --- /dev/null +++ b/samples/33_Chart_create_column_2.php @@ -0,0 +1,108 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', '', 'Budget', 'Forecast', 'Actual'], + ['2010', 'Q1', 47, 44, 43], + ['', 'Q2', 56, 53, 50], + ['', 'Q3', 52, 46, 45], + ['', 'Q4', 45, 40, 40], + ['2011', 'Q1', 51, 42, 46], + ['', 'Q2', 53, 58, 56], + ['', 'Q3', 64, 66, 69], + ['', 'Q4', 54, 55, 56], + ['2012', 'Q1', 49, 52, 58], + ['', 'Q2', 68, 73, 86], + ['', 'Q3', 72, 78, 0], + ['', 'Q4', 50, 60, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 'Budget' + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 'Forecast' + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$E$1', null, 1), // 'Actual' +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$B$13', null, 12), // Q1 to Q4 for 2010 to 2012 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$13', null, 12), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_BOTTOM, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Grouped Column Chart'); +$xAxisLabel = new \PhpSpreadsheet\Chart\Title('Financial Period'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + $xAxisLabel, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('G2'); +$chart->setBottomRightPosition('P20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_composite.php b/samples/33_Chart_create_composite.php new file mode 100644 index 00000000..f55b3cc9 --- /dev/null +++ b/samples/33_Chart_create_composite.php @@ -0,0 +1,152 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 'Rainfall (mm)', 'Temperature (°F)', 'Humidity (%)'], + ['Jan', 78, 52, 61], + ['Feb', 64, 54, 62], + ['Mar', 62, 57, 63], + ['Apr', 21, 62, 59], + ['May', 11, 75, 60], + ['Jun', 1, 75, 57], + ['Jul', 1, 79, 56], + ['Aug', 1, 79, 59], + ['Sep', 10, 75, 60], + ['Oct', 40, 68, 63], + ['Nov', 69, 62, 64], + ['Dec', 89, 57, 66], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // Temperature +]; +$dataSeriesLabels2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // Rainfall +]; +$dataSeriesLabels3 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // Humidity +]; + +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec +]; + +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$13', null, 12), +]; + +// Build the dataseries +$series1 = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping + range(0, count($dataSeriesValues1) - 1), // plotOrder + $dataSeriesLabels1, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues1 // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series1->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); + +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), +]; + +// Build the dataseries +$series2 = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_LINECHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues2) - 1), // plotOrder + $dataSeriesLabels2, // plotLabel + null, // plotCategory + $dataSeriesValues2 // plotValues +); + +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues3 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), +]; + +// Build the dataseries +$series3 = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues2) - 1), // plotOrder + $dataSeriesLabels3, // plotLabel + null, // plotCategory + $dataSeriesValues3 // plotValues +); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series1, $series2, $series3]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Average Weather Chart for Crete'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + null // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('F2'); +$chart->setBottomRightPosition('O16'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_line.php b/samples/33_Chart_create_line.php new file mode 100644 index 00000000..78254a6f --- /dev/null +++ b/samples/33_Chart_create_line.php @@ -0,0 +1,96 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_LINECHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_STACKED, // plotGrouping + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Stacked Line Chart'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_multiple_charts.php b/samples/33_Chart_create_multiple_charts.php new file mode 100644 index 00000000..9edd5b79 --- /dev/null +++ b/samples/33_Chart_create_multiple_charts.php @@ -0,0 +1,171 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series1 = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping + range(0, count($dataSeriesValues1) - 1), // plotOrder + $dataSeriesLabels1, // plotLabel + $xAxisTickValues1, // plotCategory + $dataSeriesValues1 // plotValues +); + +// Set the series in the plot area +$plotArea1 = new \PhpSpreadsheet\Chart\PlotArea(null, [$series1]); +// Set the chart legend +$legend1 = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); + +$title1 = new \PhpSpreadsheet\Chart\Title('Test %age-Stacked Area Chart'); +$yAxisLabel1 = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart1 = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title1, // title + $legend1, // legend + $plotArea1, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel1 // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart1->setTopLeftPosition('A7'); +$chart1->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart1); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series2 = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping + range(0, count($dataSeriesValues2) - 1), // plotOrder + $dataSeriesLabels2, // plotLabel + $xAxisTickValues2, // plotCategory + $dataSeriesValues2 // plotValues +); +// Set additional dataseries parameters +// Make it a vertical column rather than a horizontal bar graph +$series2->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); + +// Set the series in the plot area +$plotArea2 = new \PhpSpreadsheet\Chart\PlotArea(null, [$series2]); +// Set the chart legend +$legend2 = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title2 = new \PhpSpreadsheet\Chart\Title('Test Column Chart'); +$yAxisLabel2 = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart2 = new \PhpSpreadsheet\Chart( + 'chart2', // name + $title2, // title + $legend2, // legend + $plotArea2, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel2 // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart2->setTopLeftPosition('I7'); +$chart2->setBottomRightPosition('P20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart2); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_pie.php b/samples/33_Chart_create_pie.php new file mode 100644 index 00000000..f792adf3 --- /dev/null +++ b/samples/33_Chart_create_pie.php @@ -0,0 +1,166 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues1 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), +]; + +// Build the dataseries +$series1 = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_PIECHART, // plotType + null, // plotGrouping (Pie charts don't have any grouping) + range(0, count($dataSeriesValues1) - 1), // plotOrder + $dataSeriesLabels1, // plotLabel + $xAxisTickValues1, // plotCategory + $dataSeriesValues1 // plotValues +); + +// Set up a layout object for the Pie chart +$layout1 = new \PhpSpreadsheet\Chart\Layout(); +$layout1->setShowVal(true); +$layout1->setShowPercent(true); + +// Set the series in the plot area +$plotArea1 = new \PhpSpreadsheet\Chart\PlotArea($layout1, [$series1]); +// Set the chart legend +$legend1 = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title1 = new \PhpSpreadsheet\Chart\Title('Test Pie Chart'); + +// Create the chart +$chart1 = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title1, // title + $legend1, // legend + $plotArea1, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + null // yAxisLabel - Pie charts don't have a Y-Axis +); + +// Set the position where the chart should appear in the worksheet +$chart1->setTopLeftPosition('A7'); +$chart1->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart1); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues2 = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), +]; + +// Build the dataseries +$series2 = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_DONUTCHART, // plotType + null, // plotGrouping (Donut charts don't have any grouping) + range(0, count($dataSeriesValues2) - 1), // plotOrder + $dataSeriesLabels2, // plotLabel + $xAxisTickValues2, // plotCategory + $dataSeriesValues2 // plotValues +); + +// Set up a layout object for the Pie chart +$layout2 = new \PhpSpreadsheet\Chart\Layout(); +$layout2->setShowVal(true); +$layout2->setShowCatName(true); + +// Set the series in the plot area +$plotArea2 = new \PhpSpreadsheet\Chart\PlotArea($layout2, [$series2]); + +$title2 = new \PhpSpreadsheet\Chart\Title('Test Donut Chart'); + +// Create the chart +$chart2 = new \PhpSpreadsheet\Chart( + 'chart2', // name + $title2, // title + null, // legend + $plotArea2, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + null // yAxisLabel - Like Pie charts, Donut charts don't have a Y-Axis +); + +// Set the position where the chart should appear in the worksheet +$chart2->setTopLeftPosition('I7'); +$chart2->setBottomRightPosition('P20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart2); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_radar.php b/samples/33_Chart_create_radar.php new file mode 100644 index 00000000..8ea22b51 --- /dev/null +++ b/samples/33_Chart_create_radar.php @@ -0,0 +1,108 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Jan', 47, 45, 71], + ['Feb', 56, 73, 86], + ['Mar', 52, 61, 69], + ['Apr', 40, 52, 60], + ['May', 42, 55, 71], + ['Jun', 58, 63, 76], + ['Jul', 53, 61, 89], + ['Aug', 46, 69, 85], + ['Sep', 62, 75, 81], + ['Oct', 51, 70, 96], + ['Nov', 55, 66, 89], + ['Dec', 68, 62, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_RADARCHART, // plotType + null, // plotGrouping (Radar charts don't have any grouping) + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues, // plotValues + null, // plotDirection + null, // smooth line + \PhpSpreadsheet\Chart\DataSeries::STYLE_MARKER // plotStyle +); + +// Set up a layout object for the Pie chart +$layout = new \PhpSpreadsheet\Chart\Layout(); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea($layout, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Radar Chart'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + null // yAxisLabel - Radar charts don't have a Y-Axis +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('F2'); +$chart->setBottomRightPosition('M15'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_scatter.php b/samples/33_Chart_create_scatter.php new file mode 100644 index 00000000..1d904a07 --- /dev/null +++ b/samples/33_Chart_create_scatter.php @@ -0,0 +1,93 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_SCATTERCHART, // plotType + null, // plotGrouping (Scatter charts don't have any grouping) + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues, // plotValues + null, // plotDirection + null, // smooth line + \PhpSpreadsheet\Chart\DataSeries::STYLE_LINEMARKER // plotStyle +); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Scatter Chart'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/33_Chart_create_stock.php b/samples/33_Chart_create_stock.php new file mode 100644 index 00000000..37478c03 --- /dev/null +++ b/samples/33_Chart_create_stock.php @@ -0,0 +1,104 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['Counts', 'Max', 'Min', 'Min Threshold', 'Max Threshold'], + [10, 10, 5, 0, 50], + [30, 20, 10, 0, 50], + [20, 30, 15, 0, 50], + [40, 10, 0, 0, 50], + [100, 40, 5, 0, 50], + ], + null, + 'A1', + true +); +$worksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), //Max / Open + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), //Min / Close + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), //Min Threshold / Min + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$E$1', null, 1), //Max Threshold / Max +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$6', null, 5), // Counts +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$6', null, 5), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$6', null, 5), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$6', null, 5), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$6', null, 5), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_STOCKCHART, // plotType + null, // plotGrouping - if we set this to not null, then xlsx throws error + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Stock Chart'); +$xAxisLabel = new \PhpSpreadsheet\Chart\Title('Counts'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Values'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'stock-chart', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + $xAxisLabel, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/34_Chart_update.php b/samples/34_Chart_update.php new file mode 100644 index 00000000..40cc6d5a --- /dev/null +++ b/samples/34_Chart_update.php @@ -0,0 +1,36 @@ +<?php + +/** PhpSpreadsheet */ +require __DIR__ . '/Header.php'; + +// Create temporary file that will be read +$sampleSpreadsheet = require __DIR__ . '/templates/chartSpreadsheet.php'; +$filename = $helper->getTemporaryFilename(); +$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer->save($filename); + +$helper->log('Load from Excel2007 file'); +$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$reader->setIncludeCharts(true); +$spreadsheet = $reader->load($filename); + +$helper->log('Update cell data values that are displayed in the chart'); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + [50 - 12, 50 - 15, 50 - 21], + [50 - 56, 50 - 73, 50 - 86], + [50 - 52, 50 - 61, 50 - 69], + [50 - 30, 50 - 32, 50], + ], + null, + 'B2' +); + +// Save Excel 2007 file +$filename = $helper->getFilename(__FILE__); +$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer->setIncludeCharts(true); +$callStartTime = microtime(true); +$writer->save($filename); +$helper->logWrite($writer, $filename, $callStartTime); diff --git a/samples/35_Chart_render.php b/samples/35_Chart_render.php new file mode 100644 index 00000000..486cdd4c --- /dev/null +++ b/samples/35_Chart_render.php @@ -0,0 +1,79 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Change these values to select the Rendering library that you wish to use +// and its directory location on your server +$rendererName = PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; +$rendererLibrary = 'jpgraph3.5.0b1/src/'; +$rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; + +if (!PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { + $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); + + return; +} + +$inputFileType = 'Excel2007'; +$inputFileNames = __DIR__ . '/templates/32readwrite*[0-9].xlsx'; + +if ((isset($argc)) && ($argc > 1)) { + $inputFileNames = []; + for ($i = 1; $i < $argc; ++$i) { + $inputFileNames[] = __DIR__ . '/templates/' . $argv[$i]; + } +} else { + $inputFileNames = glob($inputFileNames); +} +foreach ($inputFileNames as $inputFileName) { + $inputFileNameShort = basename($inputFileName); + + if (!file_exists($inputFileName)) { + $helper->log('File ', $inputFileNameShort, ' does not exist'); + continue; + } + + $helper->log("Load Test from $inputFileType file ", $inputFileNameShort); + + $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader->setIncludeCharts(true); + $spreadsheet = $reader->load($inputFileName); + + $helper->log('Iterate worksheets looking at the charts'); + foreach ($spreadsheet->getWorksheetIterator() as $worksheet) { + $sheetName = $worksheet->getTitle(); + $helper->log('Worksheet: ', $sheetName); + + $chartNames = $worksheet->getChartNames(); + if (empty($chartNames)) { + $helper->log(' There are no charts in this worksheet'); + } else { + natsort($chartNames); + foreach ($chartNames as $i => $chartName) { + $chart = $worksheet->getChartByName($chartName); + if (!is_null($chart->getTitle())) { + $caption = '"' . implode(' ', $chart->getTitle()->getCaption()) . '"'; + } else { + $caption = 'Untitled'; + } + $helper->log(' ', $chartName, ' - ', $caption); + + $jpegFile = $helper->getFilename('35-' . $inputFileNameShort, 'jpg'); + if (file_exists($jpegFile)) { + unlink($jpegFile); + } + try { + $chart->render($jpegFile); + } catch (Exception $e) { + $helper->log('Error rendering chart: ', $e->getMessage()); + } + } + } + } + + $spreadsheet->disconnectWorksheets(); + unset($spreadsheet); +} + +// Echo done +$helper->log('Done rendering charts as images'); diff --git a/samples/37_Page_layout_view.php b/samples/37_Page_layout_view.php new file mode 100644 index 00000000..bcefa6ba --- /dev/null +++ b/samples/37_Page_layout_view.php @@ -0,0 +1,29 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('PHPOffice') + ->setLastModifiedBy('PHPOffice') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('Office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!'); + +// Set the page layout view as page layout +$spreadsheet->getActiveSheet()->getSheetView()->setView(PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/38_Clone_worksheet.php b/samples/38_Clone_worksheet.php new file mode 100644 index 00000000..103955ca --- /dev/null +++ b/samples/38_Clone_worksheet.php @@ -0,0 +1,55 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A1', 'Hello') + ->setCellValue('B2', 'world!') + ->setCellValue('C1', 'Hello') + ->setCellValue('D2', 'world!'); + +// Miscellaneous glyphs, UTF-8 +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', 'Miscellaneous glyphs') + ->setCellValue('A5', 'éàèùâêîôûëïüÿäöüç'); + +$spreadsheet->getActiveSheet()->setCellValue('A8', "Hello\nWorld"); +$spreadsheet->getActiveSheet()->getRowDimension(8)->setRowHeight(-1); +$spreadsheet->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Simple'); + +// Clone worksheet +$helper->log('Clone worksheet'); +$clonedSheet = clone $spreadsheet->getActiveSheet(); +$clonedSheet + ->setCellValue('A1', 'Goodbye') + ->setCellValue('A2', 'cruel') + ->setCellValue('C1', 'Goodbye') + ->setCellValue('C2', 'cruel'); + +// Rename cloned worksheet +$helper->log('Rename cloned worksheet'); +$clonedSheet->setTitle('Simple Clone'); +$spreadsheet->addSheet($clonedSheet); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/39_Dropdown.php b/samples/39_Dropdown.php new file mode 100644 index 00000000..049b4ab3 --- /dev/null +++ b/samples/39_Dropdown.php @@ -0,0 +1,125 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties() + ->setCreator('PHPOffice') + ->setLastModifiedBy('PHPOffice') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('Office PhpSpreadsheet php') + ->setCategory('Test result file'); +function transpose($value) +{ + return [$value]; +} + +// Add some data +$continentColumn = 'D'; +$column = 'F'; + +// Set data for dropdowns +$continents = glob('./data/continents/*'); +foreach ($continents as $key => $filename) { + $continent = pathinfo($filename, PATHINFO_FILENAME); + echo "Loading $continent", EOL; + $continent = str_replace(' ', '_', $continent); + $countries = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); + $countryCount = count($countries); + + // Transpose $countries from a row to a column array + $countries = array_map('transpose', $countries); + $spreadsheet->getActiveSheet() + ->fromArray($countries, null, $column . '1'); + $spreadsheet->addNamedRange( + new PhpSpreadsheet\NamedRange( + $continent, + $spreadsheet->getActiveSheet(), + $column . '1:' . $column . $countryCount + ) + ); + $spreadsheet->getActiveSheet() + ->getColumnDimension($column) + ->setVisible(false); + + $spreadsheet->getActiveSheet() + ->setCellValue($continentColumn . ($key + 1), $continent); + + ++$column; +} + +// Hide the dropdown data +$spreadsheet->getActiveSheet() + ->getColumnDimension($continentColumn) + ->setVisible(false); + +$spreadsheet->addNamedRange( + new PhpSpreadsheet\NamedRange( + 'Continents', + $spreadsheet->getActiveSheet(), + $continentColumn . '1:' . $continentColumn . count($continents) + ) +); + +// Set selection cells +$spreadsheet->getActiveSheet() + ->setCellValue('A1', 'Continent:'); +$spreadsheet->getActiveSheet() + ->setCellValue('B1', 'Select continent'); +$spreadsheet->getActiveSheet() + ->setCellValue('B3', '=' . $column . 1); +$spreadsheet->getActiveSheet() + ->setCellValue('B3', 'Select country'); +$spreadsheet->getActiveSheet() + ->getStyle('A1:A3') + ->getFont()->setBold(true); + +// Set linked validators +$validation = $spreadsheet->getActiveSheet() + ->getCell('B1') + ->getDataValidation(); +$validation->setType(PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) + ->setErrorStyle(PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) + ->setAllowBlank(false) + ->setShowInputMessage(true) + ->setShowErrorMessage(true) + ->setShowDropDown(true) + ->setErrorTitle('Input error') + ->setError('Continent is not in the list.') + ->setPromptTitle('Pick from the list') + ->setPrompt('Please pick a continent from the drop-down list.') + ->setFormula1('=Continents'); + +$spreadsheet->getActiveSheet() + ->setCellValue('A3', 'Country:'); +$spreadsheet->getActiveSheet() + ->getStyle('A3') + ->getFont()->setBold(true); + +$validation = $spreadsheet->getActiveSheet() + ->getCell('B3') + ->getDataValidation(); +$validation->setType(PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) + ->setErrorStyle(PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) + ->setAllowBlank(false) + ->setShowInputMessage(true) + ->setShowErrorMessage(true) + ->setShowDropDown(true) + ->setErrorTitle('Input error') + ->setError('Country is not in the list.') + ->setPromptTitle('Pick from the list') + ->setPrompt('Please pick a country from the drop-down list.') + ->setFormula1('=INDIRECT($B$1)'); + +$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(12); +$spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(30); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/40_Duplicate_style.php b/samples/40_Duplicate_style.php new file mode 100644 index 00000000..f2eeff2f --- /dev/null +++ b/samples/40_Duplicate_style.php @@ -0,0 +1,32 @@ +<?php + +require __DIR__ . '/Header.php'; + +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); + +$helper->log('Create styles array'); +$styles = []; +for ($i = 0; $i < 10; ++$i) { + $style = new \PhpSpreadsheet\Style(); + $style->getFont()->setSize($i + 4); + $styles[] = $style; +} + +$helper->log('Add data (begin)'); +$t = microtime(true); +for ($col = 0; $col < 50; ++$col) { + for ($row = 0; $row < 100; ++$row) { + $str = ($row + $col); + $style = $styles[$row % 10]; + $coord = \PhpSpreadsheet\Cell::stringFromColumnIndex($col) . ($row + 1); + $worksheet->setCellValue($coord, $str); + $worksheet->duplicateStyle($style, $coord); + } +} +$d = microtime(true) - $t; +$helper->log('Add data (end), time: ' . round($d, 2) . ' s'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/41_Password.php b/samples/41_Password.php new file mode 100644 index 00000000..6844b8e4 --- /dev/null +++ b/samples/41_Password.php @@ -0,0 +1,12 @@ +<?php + +require __DIR__ . '/Header.php'; +$spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; + +// Set password against the spreadsheet file +$spreadsheet->getSecurity()->setLockWindows(true); +$spreadsheet->getSecurity()->setLockStructure(true); +$spreadsheet->getSecurity()->setWorkbookPassword('secret'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/42_RichText.php b/samples/42_RichText.php new file mode 100644 index 00000000..3cd33863 --- /dev/null +++ b/samples/42_RichText.php @@ -0,0 +1,95 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('PhpSpreadsheet Test Document') + ->setSubject('PhpSpreadsheet Test Document') + ->setDescription('Test document for PhpSpreadsheet, generated using PHP classes.') + ->setKeywords('office PhpSpreadsheet php') + ->setCategory('Test result file'); + +// Add some data +$helper->log('Add some data'); + +$html1 = '<font color="#0000ff"> +<h1 align="center">My very first example of rich text<br />generated from html markup</h1> +<p> +<font size="14" COLOR="rgb(0,255,128)"> +<b>This block</b> contains an <i>italicized</i> word; +while this block uses an <u>underline</u>. +</font> +</p> +<p align="right"><font size="9" color="red"> +I want to eat <ins><del>healthy food</del> <strong>pizza</strong></ins>. +</font> +'; + +$html2 = '<p> +<font color="#ff0000"> + 100&deg;C is a hot temperature +</font> +<br> +<font color="#0080ff"> + 10&deg;F is cold +</font> +</p>'; + +$html3 = '2<sup>3</sup> equals 8'; + +$html4 = 'H<sub>2</sub>SO<sub>4</sub> is the chemical formula for Sulphuric acid'; + +$html5 = '<strong>bold</strong>, <em>italic</em>, <strong><em>bold+italic</em></strong>'; + +$wizard = new \PhpSpreadsheet\Helper\HTML(); +$richText = $wizard->toRichTextObject($html1); + +$spreadsheet->getActiveSheet() + ->setCellValue('A1', $richText); + +$spreadsheet->getActiveSheet() + ->getColumnDimension('A') + ->setWidth(48); +$spreadsheet->getActiveSheet() + ->getRowDimension(1) + ->setRowHeight(-1); +$spreadsheet->getActiveSheet()->getStyle('A1') + ->getAlignment() + ->setWrapText(true); + +$richText = $wizard->toRichTextObject($html2); + +$spreadsheet->getActiveSheet() + ->setCellValue('A2', $richText); + +$spreadsheet->getActiveSheet() + ->getRowDimension(1) + ->setRowHeight(-1); +$spreadsheet->getActiveSheet() + ->getStyle('A2') + ->getAlignment() + ->setWrapText(true); + +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A3', $wizard->toRichTextObject($html3)); + +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A4', $wizard->toRichTextObject($html4)); + +$spreadsheet->setActiveSheetIndex(0) + ->setCellValue('A5', $wizard->toRichTextObject($html5)); + +// Rename worksheet +$helper->log('Rename worksheet'); +$spreadsheet->getActiveSheet() + ->setTitle('Rich Text Examples'); + +// Save +$helper->write($spreadsheet, __FILE__); diff --git a/samples/43_Merge_workbooks.php b/samples/43_Merge_workbooks.php new file mode 100644 index 00000000..d55dae74 --- /dev/null +++ b/samples/43_Merge_workbooks.php @@ -0,0 +1,24 @@ +<?php + +require __DIR__ . '/Header.php'; + +$helper->log('Load MergeBook1 from Excel2007 file'); +$filename1 = __DIR__ . '/templates/43mergeBook1.xlsx'; +$callStartTime = microtime(true); +$spreadsheet1 = \PhpSpreadsheet\IOFactory::load($filename1); +$helper->logRead('Excel2007', $filename1, $callStartTime); + +$helper->log('Load MergeBook2 from Excel2007 file'); +$filename2 = __DIR__ . '/templates/43mergeBook2.xlsx'; +$callStartTime = microtime(true); +$spreadsheet2 = \PhpSpreadsheet\IOFactory::load($filename2); +$helper->logRead('Excel2007', $filename2, $callStartTime); + +foreach ($spreadsheet2->getSheetNames() as $sheetName) { + $sheet = $spreadsheet2->getSheetByName($sheetName); + $sheet->setTitle($sheet->getTitle() . ' copied'); + $spreadsheet1->addExternalSheet($sheet); +} + +// Save +$helper->write($spreadsheet1, __FILE__); diff --git a/samples/44_Worksheet_info.php b/samples/44_Worksheet_info.php new file mode 100644 index 00000000..608b53b6 --- /dev/null +++ b/samples/44_Worksheet_info.php @@ -0,0 +1,23 @@ +<?php + +require __DIR__ . '/Header.php'; + +// Create temporary file that will be read +$sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; +$filename = $helper->getTemporaryFilename(); +$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer->save($filename); + +$inputFileType = \PhpSpreadsheet\IOFactory::identify($filename); +$reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); +$sheetList = $reader->listWorksheetNames($filename); +$sheetInfo = $reader->listWorksheetInfo($filename); + +$helper->log('File Type:'); +var_dump($inputFileType); + +$helper->log('Worksheet Names:'); +var_dump($sheetList); + +$helper->log('Worksheet Names:'); +var_dump($sheetInfo); diff --git a/samples/45_Quadratic_equation_solver.php b/samples/45_Quadratic_equation_solver.php new file mode 100644 index 00000000..56bf4e7e --- /dev/null +++ b/samples/45_Quadratic_equation_solver.php @@ -0,0 +1,41 @@ +<?php +require __DIR__ . '/Header.php'; +?> +<form action="Quadratic2.php" method="POST"> + Enter the coefficients for the Ax<sup>2</sup> + Bx + C = 0 + <table border="0" cellpadding="0" cellspacing="0"> + <tr><td><b>A&nbsp;</b></td> + <td><input name="A" type="text" size="8" value="<?php echo (isset($_POST['A'])) ? htmlentities($_POST['A']) : ''; ?>"></td> + </tr> + <tr><td><b>B&nbsp;</b></td> + <td><input name="B" type="text" size="8" value="<?php echo (isset($_POST['B'])) ? htmlentities($_POST['B']) : ''; ?>"></td> + </tr> + <tr><td><b>C&nbsp;</b></td> + <td><input name="C" type="text" size="8" value="<?php echo (isset($_POST['C'])) ? htmlentities($_POST['C']) : ''; ?>"></td> + </tr> + </table> + <input name="submit" type="submit" value="calculate"><br /> + If A=0, the equation is not quadratic. +</form> + +<?php +/** If the user has submitted the form, then we need to execute a calculation * */ +if (isset($_POST['submit'])) { + if ($_POST['A'] == 0) { + echo 'The equation is not quadratic'; + } else { + /* Calculate and Display the results * */ + echo '<hr /><b>Roots:</b><br />'; + + $discriminantFormula = '=POWER(' . $_POST['B'] . ',2) - (4 * ' . $_POST['A'] . ' * ' . $_POST['C'] . ')'; + $discriminant = PhpSpreadsheet_Calculation::getInstance()->calculateFormula($discriminantFormula); + + $r1Formula = '=IMDIV(IMSUM(-' . $_POST['B'] . ',IMSQRT(' . $discriminant . ')),2 * ' . $_POST['A'] . ')'; + $r2Formula = '=IF(' . $discriminant . '=0,"Only one root",IMDIV(IMSUB(-' . $_POST['B'] . ',IMSQRT(' . $discriminant . ')),2 * ' . $_POST['A'] . '))'; + + echo PhpSpreadsheet_Calculation::getInstance()->calculateFormula($r1Formula) . '<br />'; + echo PhpSpreadsheet_Calculation::getInstance()->calculateFormula($r2Formula) . '<br />'; + $callEndTime = microtime(true); + $helper->logEndingNotes(); + } +} diff --git a/samples/Header.php b/samples/Header.php new file mode 100644 index 00000000..6e22112d --- /dev/null +++ b/samples/Header.php @@ -0,0 +1,62 @@ +<?php +/** + * Header file. + */ +error_reporting(E_ALL); + +require_once __DIR__ . '/../src/Bootstrap.php'; + +$helper = new \PhpSpreadsheet\Helper\Sample(); +if (!defined('EOL')) { + define('EOL', $helper->isCli() ? PHP_EOL : '<br />'); +} + +// Return to the caller script when runs by CLI +if ($helper->isCli()) { + return; +} +?> +<title><?php echo $helper->getPageTitle(); ?></title> +<meta charset="utf-8"> +<meta http-equiv="X-UA-Compatible" content="IE=edge" /> +<meta name="viewport" content="width=device-width, initial-scale=1.0" /> +<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" /> +<link rel="stylesheet" href="bootstrap/css/font-awesome.min.css" /> +<link rel="stylesheet" href="bootstrap/css/phpspreadsheet.css" /> +<script src="bootstrap/js/jquery.min.js"></script> +<script src="bootstrap/js/bootstrap.min.js"></script> +</head> +<body> + <div class="container"> + <div class="navbar navbar-default" role="navigation"> + <div class="container-fluid"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="./">PHPSpreadsheet</a> + </div> + <div class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + <li class="dropdown active"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="fa fa-code fa-lg"></i>&nbsp;Samples<strong class="caret"></strong></a> + <ul class="dropdown-menu"><?php + foreach ($helper->getSamples() as $name => $file) { + echo '<li><a href="' . basename($file) . '">' . $name . '</a></li>'; + } + ?></ul> + </li> + </ul> + <ul class="nav navbar-nav navbar-right"> + <li><a href="https://github.com/PHPOffice/PHPSpreadsheet"><i class="fa fa-github fa-lg" title="GitHub"></i>&nbsp;</a></li> + <li><a href="http://phpspreadsheet.readthedocs.org/en/develop/"><i class="fa fa-book fa-lg" title="Docs"></i>&nbsp;</a></li> + <li><a href="http://twitter.com/PHPOffice"><i class="fa fa-twitter fa-lg" title="Twitter"></i>&nbsp;</a></li> + </ul> + </div> + </div> + </div> + <?php + echo $helper->getPageHeading(); diff --git a/samples/bootstrap/css/bootstrap.min.css b/samples/bootstrap/css/bootstrap.min.css new file mode 100644 index 00000000..ed3905e0 --- /dev/null +++ b/samples/bootstrap/css/bootstrap.min.css @@ -0,0 +1,6 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);background-color:rgba(0,0,0,0);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-10px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-10px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/samples/bootstrap/css/font-awesome.min.css b/samples/bootstrap/css/font-awesome.min.css new file mode 100644 index 00000000..4ec92235 --- /dev/null +++ b/samples/bootstrap/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.6.3');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.6.3') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.6.3') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.6.3') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} \ No newline at end of file diff --git a/samples/bootstrap/css/phpspreadsheet.css b/samples/bootstrap/css/phpspreadsheet.css new file mode 100644 index 00000000..5ea37342 --- /dev/null +++ b/samples/bootstrap/css/phpspreadsheet.css @@ -0,0 +1,13 @@ +body { + padding-top: 20px; + padding-bottom: 20px; +} +.navbar { + margin-bottom: 20px; +} +.passed { + color: #339900; +} +.failed { + color: #ff0000; +} \ No newline at end of file diff --git a/samples/bootstrap/fonts/FontAwesome.otf b/samples/bootstrap/fonts/FontAwesome.otf new file mode 100644 index 0000000000000000000000000000000000000000..d4de13e832d567ff29c5b4e9561b8c370348cc9c GIT binary patch literal 124988 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 CDx5C> literal 0 HcmV?d00001 diff --git a/samples/bootstrap/fonts/fontawesome-webfont.eot b/samples/bootstrap/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..c7b00d2ba8896fd29de846b19f89fcf0d56ad152 GIT binary patch literal 76518 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%0A7dSkOOi@@JBNJ#6fTo95 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%0DyT{kunD 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 literal 0 HcmV?d00001 diff --git a/samples/bootstrap/fonts/fontawesome-webfont.svg b/samples/bootstrap/fonts/fontawesome-webfont.svg new file mode 100644 index 00000000..8b66187f --- /dev/null +++ b/samples/bootstrap/fonts/fontawesome-webfont.svg @@ -0,0 +1,685 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata></metadata> +<defs> +<font id="fontawesomeregular" horiz-adv-x="1536" > +<font-face units-per-em="1792" ascent="1536" descent="-256" /> +<missing-glyph horiz-adv-x="448" /> +<glyph unicode=" " horiz-adv-x="448" /> +<glyph unicode="&#x09;" horiz-adv-x="448" /> +<glyph unicode="&#xa0;" horiz-adv-x="448" /> +<glyph unicode="&#xa8;" horiz-adv-x="1792" /> +<glyph unicode="&#xa9;" horiz-adv-x="1792" /> +<glyph unicode="&#xae;" horiz-adv-x="1792" /> +<glyph unicode="&#xb4;" horiz-adv-x="1792" /> +<glyph unicode="&#xc6;" horiz-adv-x="1792" /> +<glyph unicode="&#xd8;" horiz-adv-x="1792" /> +<glyph unicode="&#x2000;" horiz-adv-x="768" /> +<glyph unicode="&#x2001;" horiz-adv-x="1537" /> +<glyph unicode="&#x2002;" horiz-adv-x="768" /> +<glyph unicode="&#x2003;" horiz-adv-x="1537" /> +<glyph unicode="&#x2004;" horiz-adv-x="512" /> +<glyph unicode="&#x2005;" horiz-adv-x="384" /> +<glyph unicode="&#x2006;" horiz-adv-x="256" /> +<glyph unicode="&#x2007;" horiz-adv-x="256" /> +<glyph unicode="&#x2008;" horiz-adv-x="192" /> +<glyph unicode="&#x2009;" horiz-adv-x="307" /> +<glyph unicode="&#x200a;" horiz-adv-x="85" /> +<glyph unicode="&#x202f;" horiz-adv-x="307" /> +<glyph unicode="&#x205f;" horiz-adv-x="384" /> +<glyph unicode="&#x2122;" horiz-adv-x="1792" /> +<glyph unicode="&#x221e;" horiz-adv-x="1792" /> +<glyph unicode="&#x2260;" horiz-adv-x="1792" /> +<glyph unicode="&#x25fc;" horiz-adv-x="500" d="M0 0z" /> +<glyph unicode="&#xf000;" horiz-adv-x="1792" d="M1699 1350q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5z" /> +<glyph unicode="&#xf001;" d="M1536 1312v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89 t34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf002;" horiz-adv-x="1664" d="M1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5 t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> +<glyph unicode="&#xf003;" horiz-adv-x="1792" d="M1664 32v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1664 1083v11v13.5t-0.5 13 t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317q54 43 100.5 115.5t46.5 131.5z M1792 1120v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf004;" horiz-adv-x="1792" d="M896 -128q-26 0 -44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600 q-18 -18 -44 -18z" /> +<glyph unicode="&#xf005;" horiz-adv-x="1664" d="M1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455 l502 -73q56 -9 56 -46z" /> +<glyph unicode="&#xf006;" horiz-adv-x="1664" d="M1137 532l306 297l-422 62l-189 382l-189 -382l-422 -62l306 -297l-73 -421l378 199l377 -199zM1664 889q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46z" /> +<glyph unicode="&#xf007;" horiz-adv-x="1408" d="M1408 131q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81 t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> +<glyph unicode="&#xf008;" horiz-adv-x="1920" d="M384 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 320v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM384 704v128q0 26 -19 45t-45 19h-128 q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 -64v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM384 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45 t45 -19h128q26 0 45 19t19 45zM1792 -64v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1408 704v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1792 320v128 q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 704v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1792 1088v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19 t-19 -45v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1920 1248v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf009;" horiz-adv-x="1664" d="M768 512v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM768 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 512v-384q0 -52 -38 -90t-90 -38 h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90zM1664 1280v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf00a;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 288v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1152 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf00b;" horiz-adv-x="1792" d="M512 288v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM512 800v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 288v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68zM512 1312v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68zM1792 800v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28 h960q40 0 68 -28t28 -68zM1792 1312v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf00c;" horiz-adv-x="1792" d="M1671 970q0 -40 -28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68z" /> +<glyph unicode="&#xf00d;" horiz-adv-x="1408" d="M1298 214q0 -40 -28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68t28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68 t-28 -68l-294 -294l294 -294q28 -28 28 -68z" /> +<glyph unicode="&#xf00e;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224 q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5 t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z" /> +<glyph unicode="&#xf010;" horiz-adv-x="1664" d="M1024 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5zM1152 704q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5z M1664 -128q0 -53 -37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90z " /> +<glyph unicode="&#xf011;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5 t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343zM896 1408v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90v640q0 52 38 90t90 38t90 -38t38 -90z" /> +<glyph unicode="&#xf012;" horiz-adv-x="1792" d="M256 96v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 224v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 480v-576q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1408 864v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1376v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf013;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1536 749v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108q-44 -23 -91 -38 q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5v222q0 12 8 23t19 13 l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10q129 -119 165 -170q7 -8 7 -22 q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5z" /> +<glyph unicode="&#xf014;" horiz-adv-x="1408" d="M512 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM768 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1024 800v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1152 76v948h-896v-948q0 -22 7 -40.5t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832 q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf015;" horiz-adv-x="1664" d="M1408 544v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6zM1631 613l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5t11 21.5 l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5z" /> +<glyph unicode="&#xf016;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z " /> +<glyph unicode="&#xf017;" d="M896 992v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf018;" horiz-adv-x="1920" d="M1111 540v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20zM1870 73q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256 q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116z" /> +<glyph unicode="&#xf019;" horiz-adv-x="1664" d="M1280 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 416v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h465l135 -136 q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68zM1339 985q17 -41 -14 -70l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39z" /> +<glyph unicode="&#xf01a;" d="M1120 608q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273 t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf01b;" d="M1118 660q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198 t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf01c;" d="M1023 576h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8t-2.5 -8h316l95 -192h320zM1536 546v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552 q25 -61 25 -123z" /> +<glyph unicode="&#xf01d;" d="M1184 640q0 -37 -32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf01e;" d="M1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9 l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59z" /> +<glyph unicode="&#xf021;" d="M1511 480q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129q-19 -19 -45 -19t-45 19t-19 45v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117 q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5zM1536 1280v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5v7q65 268 270 434.5t480 166.5 q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45z" /> +<glyph unicode="&#xf022;" horiz-adv-x="1792" d="M384 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M384 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1536 352v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5z M1536 608v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5zM1536 864v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5 t9.5 -22.5zM1664 160v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5zM1792 1248v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1472q66 0 113 -47 t47 -113z" /> +<glyph unicode="&#xf023;" horiz-adv-x="1152" d="M320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192zM1152 672v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf024;" horiz-adv-x="1792" d="M320 1280q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48 t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf025;" horiz-adv-x="1664" d="M1664 650q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78 t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314q0 151 67 291t179 242.5 t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291z" /> +<glyph unicode="&#xf026;" horiz-adv-x="768" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45z" /> +<glyph unicode="&#xf027;" horiz-adv-x="1152" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142z" /> +<glyph unicode="&#xf028;" horiz-adv-x="1664" d="M768 1184v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45zM1152 640q0 -76 -42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5q0 21 12 35.5t29 25t34 23t29 35.5 t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5q15 0 25 -5q70 -27 112.5 -93t42.5 -142zM1408 640q0 -153 -85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5 t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5q140 -59 225 -188.5t85 -282.5zM1664 640q0 -230 -127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289 t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19q13 0 26 -5q211 -91 338 -283.5t127 -422.5z" /> +<glyph unicode="&#xf029;" horiz-adv-x="1408" d="M384 384v-128h-128v128h128zM384 1152v-128h-128v128h128zM1152 1152v-128h-128v128h128zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM896 896h384v384h-384v-384zM640 640v-640h-640v640h640zM1152 128v-128h-128v128h128zM1408 128v-128h-128v128h128z M1408 640v-384h-384v128h-128v-384h-128v640h384v-128h128v128h128zM640 1408v-640h-640v640h640zM1408 1408v-640h-640v640h640z" /> +<glyph unicode="&#xf02a;" horiz-adv-x="1792" d="M63 0h-63v1408h63v-1408zM126 1h-32v1407h32v-1407zM220 1h-31v1407h31v-1407zM377 1h-31v1407h31v-1407zM534 1h-62v1407h62v-1407zM660 1h-31v1407h31v-1407zM723 1h-31v1407h31v-1407zM786 1h-31v1407h31v-1407zM943 1h-63v1407h63v-1407zM1100 1h-63v1407h63v-1407z M1226 1h-63v1407h63v-1407zM1352 1h-63v1407h63v-1407zM1446 1h-63v1407h63v-1407zM1635 1h-94v1407h94v-1407zM1698 1h-32v1407h32v-1407zM1792 0h-63v1408h63v-1408z" /> +<glyph unicode="&#xf02b;" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91z" /> +<glyph unicode="&#xf02c;" horiz-adv-x="1920" d="M448 1088q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1515 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5 l715 -714q37 -39 37 -91zM1899 512q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91z" /> +<glyph unicode="&#xf02d;" horiz-adv-x="1664" d="M1639 1058q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23 q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906 q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57q38 -15 59 -43zM575 1056q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5 t-16.5 -22.5zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" /> +<glyph unicode="&#xf02e;" horiz-adv-x="1280" d="M1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> +<glyph unicode="&#xf02f;" horiz-adv-x="1664" d="M384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1536 576q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 576v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68 v160h-224q-13 0 -22.5 9.5t-9.5 22.5v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5z" /> +<glyph unicode="&#xf030;" horiz-adv-x="1920" d="M960 864q119 0 203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5t84.5 203.5t203.5 84.5zM1664 1280q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181v896q0 106 75 181t181 75h224l51 136 q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224zM960 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf031;" horiz-adv-x="1664" d="M725 977l-170 -450q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452zM0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57 q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5 q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14z" /> +<glyph unicode="&#xf032;" horiz-adv-x="1408" d="M555 15q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5t4.5 -83.5t12 -66.5zM541 761q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142 q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13q0 -50 4 -151t4 -152q0 -27 -0.5 -80t-0.5 -79q0 -46 1 -69zM0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5 t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5 t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12z" /> +<glyph unicode="&#xf033;" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" /> +<glyph unicode="&#xf034;" horiz-adv-x="1792" d="M1744 128q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5t42 18.5h80v1024h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80zM81 1407l54 -27q12 -5 211 -5q44 0 132 2 t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5 q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44v383z" /> +<glyph unicode="&#xf035;" d="M81 1407l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1t-103 1 t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27 q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44v383zM1310 125q12 0 42 -19.5t57.5 -41.5 t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49 t26 49q4 3 36 30t59.5 49t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5z" /> +<glyph unicode="&#xf036;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf037;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1408 576v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h896q26 0 45 -19t19 -45zM1664 960v-128q0 -26 -19 -45t-45 -19 h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1280 1344v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf038;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1536q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf039;" horiz-adv-x="1792" d="M1792 192v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 576v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 960v-128q0 -26 -19 -45 t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf03a;" horiz-adv-x="1792" d="M256 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM256 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5 t9.5 -22.5zM256 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344 q13 0 22.5 -9.5t9.5 -22.5zM256 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v192 q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5z" /> +<glyph unicode="&#xf03b;" horiz-adv-x="1792" d="M384 992v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23t9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> +<glyph unicode="&#xf03c;" horiz-adv-x="1792" d="M352 704q0 -14 -9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5 t9.5 -22.5zM1792 608v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5zM1792 992v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1088 q13 0 22.5 -9.5t9.5 -22.5zM1792 1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5z" /> +<glyph unicode="&#xf03d;" horiz-adv-x="1792" d="M1792 1184v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5 q39 -17 39 -59z" /> +<glyph unicode="&#xf03e;" horiz-adv-x="1920" d="M640 960q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 576v-448h-1408v192l320 320l160 -160l512 512zM1760 1280h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216 q0 13 -9.5 22.5t-22.5 9.5zM1920 1248v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf040;" d="M363 0l91 91l-235 235l-91 -91v-107h128v-128h107zM886 928q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17zM832 1120l416 -416l-832 -832h-416v416zM1515 1024q0 -53 -37 -90l-166 -166l-416 416l166 165q36 38 90 38 q53 0 91 -38l235 -234q37 -39 37 -91z" /> +<glyph unicode="&#xf041;" horiz-adv-x="1024" d="M768 896q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1024 896q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179q0 212 150 362t362 150t362 -150t150 -362z" /> +<glyph unicode="&#xf042;" d="M768 96v1088q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf043;" horiz-adv-x="1024" d="M512 384q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 512q0 -212 -150 -362t-362 -150t-362 150t-150 362 q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275z" /> +<glyph unicode="&#xf044;" horiz-adv-x="1792" d="M888 352l116 116l-152 152l-116 -116v-56h96v-96h56zM1328 1072q-16 16 -33 -1l-350 -350q-17 -17 -1 -33t33 1l350 350q17 17 1 33zM1408 478v-190q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29zM1312 1216l288 -288l-672 -672h-288v288zM1756 1084l-92 -92 l-288 288l92 92q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68z" /> +<glyph unicode="&#xf045;" horiz-adv-x="1664" d="M1408 547v-259q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h255v0q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832 q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29zM1645 1043l-384 -384q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5 t-38.5 114t-17.5 122q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45z" /> +<glyph unicode="&#xf046;" horiz-adv-x="1664" d="M1408 606v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832 q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3q20 -8 20 -29zM1639 1095l-814 -814q-24 -24 -57 -24t-57 24l-430 430q-24 24 -24 57t24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110 q24 -24 24 -57t-24 -57z" /> +<glyph unicode="&#xf047;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45 t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> +<glyph unicode="&#xf048;" horiz-adv-x="1024" d="M979 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19z" /> +<glyph unicode="&#xf049;" horiz-adv-x="1792" d="M1747 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710 q19 19 32 13t13 -32v-710q4 11 13 19z" /> +<glyph unicode="&#xf04a;" horiz-adv-x="1664" d="M1619 1395q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45t19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19z" /> +<glyph unicode="&#xf04b;" horiz-adv-x="1408" d="M1384 609l-1328 -738q-23 -13 -39.5 -3t-16.5 36v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31z" /> +<glyph unicode="&#xf04c;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45zM640 1344v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf04d;" d="M1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf04e;" horiz-adv-x="1664" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" /> +<glyph unicode="&#xf050;" horiz-adv-x="1792" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710 q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19z" /> +<glyph unicode="&#xf051;" horiz-adv-x="1024" d="M45 -115q-19 -19 -32 -13t-13 32v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19z" /> +<glyph unicode="&#xf052;" horiz-adv-x="1538" d="M14 557l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13t13 32zM1473 0h-1408q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19z" /> +<glyph unicode="&#xf053;" horiz-adv-x="1280" d="M1171 1235l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45t19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45z" /> +<glyph unicode="&#xf054;" horiz-adv-x="1280" d="M1107 659l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45t19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45z" /> +<glyph unicode="&#xf055;" d="M1216 576v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5 t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf056;" d="M1216 576v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h768q26 0 45 19t19 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" /> +<glyph unicode="&#xf057;" d="M1149 414q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45q0 -27 19 -46l90 -90q19 -19 46 -19 q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19l90 90q19 19 19 46zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf058;" d="M1284 802q0 28 -18 46l-91 90q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf059;" d="M896 160v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h192q14 0 23 9t9 23zM1152 832q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26t37.5 -59 q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf05a;" d="M1024 160v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23zM896 1056v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23 t23 -9h192q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf05b;" d="M1197 512h-109q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109 q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5zM1536 704v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143 q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf05c;" d="M1097 457l-146 -146q-10 -10 -23 -10t-23 10l-137 137l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23t10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23 l-137 -137l137 -137q10 -10 10 -23t-10 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5 t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf05d;" d="M1171 723l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45t19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198 t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf05e;" d="M1312 643q0 161 -87 295l-754 -753q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5zM313 344l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199t-73 -274q0 -162 89 -299zM1536 643q0 -157 -61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61 t-245 164t-163.5 246t-61 300t61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5z" /> +<glyph unicode="&#xf060;" d="M1536 640v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5 t32.5 -90.5z" /> +<glyph unicode="&#xf061;" d="M1472 576q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90z" /> +<glyph unicode="&#xf062;" horiz-adv-x="1664" d="M1611 565q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75q-38 38 -38 90q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651 q37 -39 37 -91z" /> +<glyph unicode="&#xf063;" horiz-adv-x="1664" d="M1611 704q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91z" /> +<glyph unicode="&#xf064;" horiz-adv-x="1792" d="M1792 896q0 -26 -19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22 t-13.5 30t-10.5 24q-127 285 -127 451q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45z" /> +<glyph unicode="&#xf065;" d="M755 480q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23zM1536 1344v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332 q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf066;" d="M768 576v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45zM1523 1248q0 -13 -10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45 t-45 -19h-448q-26 0 -45 19t-19 45v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23z" /> +<glyph unicode="&#xf067;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf068;" horiz-adv-x="1408" d="M1408 800v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf069;" horiz-adv-x="1664" d="M1482 486q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5t59.5 77.5l266 154l-266 154 q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5l-266 -154z" /> +<glyph unicode="&#xf06a;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM896 161v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190q0 -13 10 -23t23 -10h192 q13 0 22 9.5t9 23.5zM894 505l18 621q0 12 -10 18q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5z" /> +<glyph unicode="&#xf06b;" d="M928 180v56v468v192h-320v-192v-468v-56q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5zM472 1024h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68t28 -68t68 -28zM1160 1120q0 40 -28 68t-68 28q-43 0 -69 -31l-125 -161h194q40 0 68 28t28 68zM1536 864v-320 q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5 t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf06c;" horiz-adv-x="1792" d="M1280 832q0 26 -19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45q0 -26 19 -45t45 -19q24 0 45 19q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45zM1792 1030q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268 q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5 t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96z" /> +<glyph unicode="&#xf06d;" horiz-adv-x="1408" d="M1408 -160v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5zM1152 896q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1 q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100t113.5 -122.5t72.5 -150.5t27.5 -184z" /> +<glyph unicode="&#xf06e;" horiz-adv-x="1792" d="M1664 576q-152 236 -381 353q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1792 576q0 -34 -20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69t20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69z" /> +<glyph unicode="&#xf070;" horiz-adv-x="1792" d="M555 201l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353q167 -258 427 -375zM944 960q0 20 -14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34zM1307 1151q0 -7 -1 -9 q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87q-143 65 -263.5 173t-208.5 245q-20 31 -20 69t20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5 q16 -10 16 -27zM1344 704q0 -139 -79 -253.5t-209 -164.5l280 502q8 -45 8 -84zM1792 576q0 -35 -20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69z " /> +<glyph unicode="&#xf071;" horiz-adv-x="1792" d="M1024 161v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5zM1022 535l18 459q0 12 -10 19q-13 11 -24 11h-220q-11 0 -24 -11q-10 -7 -10 -21l17 -457q0 -10 10 -16.5t24 -6.5h185 q14 0 23.5 6.5t10.5 16.5zM1008 1469l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126l768 1408q17 31 47 49t65 18t65 -18t47 -49z" /> +<glyph unicode="&#xf072;" horiz-adv-x="1408" d="M1376 1376q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23q-1 13 9 25l96 97q9 9 23 9 q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12z" /> +<glyph unicode="&#xf073;" horiz-adv-x="1664" d="M128 -128h288v288h-288v-288zM480 -128h320v288h-320v-288zM128 224h288v320h-288v-320zM480 224h320v320h-320v-320zM128 608h288v288h-288v-288zM864 -128h320v288h-320v-288zM480 608h320v288h-320v-288zM1248 -128h288v288h-288v-288zM864 224h320v320h-320v-320z M512 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1248 224h288v320h-288v-320zM864 608h320v288h-320v-288zM1248 608h288v288h-288v-288zM1280 1088v288q0 13 -9.5 22.5t-22.5 9.5h-64 q-13 0 -22.5 -9.5t-9.5 -22.5v-288q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47 h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf074;" horiz-adv-x="1792" d="M666 1055q-60 -92 -137 -273q-22 45 -37 72.5t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q250 0 410 -225zM1792 256q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192q-32 0 -85 -0.5t-81 -1t-73 1 t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1792 1152q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5 v192h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111 t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> +<glyph unicode="&#xf075;" horiz-adv-x="1792" d="M1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281 q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5z" /> +<glyph unicode="&#xf076;" d="M1536 704v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5t-98.5 362v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384 q26 0 45 -19t19 -45zM512 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45zM1536 1344v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf077;" horiz-adv-x="1792" d="M1683 205l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5t19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5z" /> +<glyph unicode="&#xf078;" horiz-adv-x="1792" d="M1683 728l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5t19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5z" /> +<glyph unicode="&#xf079;" horiz-adv-x="1920" d="M1280 32q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21 zM1920 448q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45z " /> +<glyph unicode="&#xf07a;" horiz-adv-x="1664" d="M640 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1536 0q0 -52 -38 -90t-90 -38t-90 38t-38 90t38 90t90 38t90 -38t38 -90zM1664 1088v-512q0 -24 -16.5 -42.5t-40.5 -21.5l-1044 -122q13 -60 13 -70q0 -16 -24 -64h920q26 0 45 -19t19 -45 t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 11 8 31.5t16 36t21.5 40t15.5 29.5l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t19.5 -15.5t13 -24.5t8 -26t5.5 -29.5t4.5 -26h1201q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf07b;" horiz-adv-x="1664" d="M1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> +<glyph unicode="&#xf07c;" horiz-adv-x="1920" d="M1879 584q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43zM1536 928v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5 t-0.5 12.5v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158z" /> +<glyph unicode="&#xf07d;" horiz-adv-x="768" d="M704 1216q0 -26 -19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45z" /> +<glyph unicode="&#xf07e;" horiz-adv-x="1792" d="M1792 640q0 -26 -19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45t19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45z" /> +<glyph unicode="&#xf080;" horiz-adv-x="2048" d="M640 640v-512h-256v512h256zM1024 1152v-1024h-256v1024h256zM2048 0v-128h-2048v1536h128v-1408h1920zM1408 896v-768h-256v768h256zM1792 1280v-1152h-256v1152h256z" /> +<glyph unicode="&#xf081;" d="M1280 926q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4 q21 -63 74.5 -104t121.5 -42q-116 -90 -261 -90q-26 0 -50 3q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5 t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf082;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-188v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-532q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960z" /> +<glyph unicode="&#xf083;" horiz-adv-x="1792" d="M928 704q0 14 -9 23t-23 9q-66 0 -113 -47t-47 -113q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9t9 23zM1152 574q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM128 0h1536v128h-1536v-128zM1280 574q0 159 -112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM256 1216h384v128h-384v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM1792 1280v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5v1280 q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5z" /> +<glyph unicode="&#xf084;" horiz-adv-x="1792" d="M832 1024q0 80 -56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136t56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56t56 136zM1683 320q0 -17 -49 -66t-66 -49q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26 l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5 t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41z" /> +<glyph unicode="&#xf085;" horiz-adv-x="1920" d="M896 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1664 128q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1152q0 52 -38 90t-90 38t-90 -38t-38 -90q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1280 731v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5 l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7 l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5zM1920 198v-140q0 -16 -149 -31 q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20 t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31zM1920 1222v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68 q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70 q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31z" /> +<glyph unicode="&#xf086;" horiz-adv-x="1792" d="M1408 768q0 -139 -94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224 q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257zM1792 512q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7 q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230z" /> +<glyph unicode="&#xf087;" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 768q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5 t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81zM1536 769 q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128 q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179z" /> +<glyph unicode="&#xf088;" d="M256 1088q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 512q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5 t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640h32q16 0 35.5 -9t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5z M1536 511q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5 h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163z" /> +<glyph unicode="&#xf089;" horiz-adv-x="896" d="M832 1504v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48q0 37 56 46l502 73l225 455q19 41 49 41z" /> +<glyph unicode="&#xf08a;" horiz-adv-x="1792" d="M1664 940q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5t-21.5 -143q0 -168 187 -355l581 -560l580 559 q188 188 188 356zM1792 940q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5 q224 0 351 -124t127 -344z" /> +<glyph unicode="&#xf08b;" horiz-adv-x="1664" d="M640 96q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704 q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5zM1568 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45z" /> +<glyph unicode="&#xf08c;" d="M237 122h231v694h-231v-694zM483 1030q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5zM1068 122h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694h231v388q0 38 7 56q15 35 45 59.5t74 24.5 q116 0 116 -157v-371zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf08d;" horiz-adv-x="1152" d="M480 672v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448q0 -14 9 -23t23 -9t23 9t9 23zM1152 320q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19t-19 45q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38 t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5z" /> +<glyph unicode="&#xf08e;" horiz-adv-x="1792" d="M1408 608v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320 q0 14 9 23t23 9h64q14 0 23 -9t9 -23zM1792 1472v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23t10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf090;" d="M1184 640q0 -26 -19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45zM1536 992v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5 q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf091;" horiz-adv-x="1664" d="M458 653q-74 162 -74 371h-256v-96q0 -78 94.5 -162t235.5 -113zM1536 928v96h-256q0 -209 -74 -371q141 29 235.5 113t94.5 162zM1664 1056v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91 t97.5 -37q75 0 133.5 -45.5t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143v128q0 40 28 68t68 28h288v96 q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf092;" d="M519 336q4 6 -3 13q-9 7 -14 2q-4 -6 3 -13q9 -7 14 -2zM491 377q-5 7 -12 4q-6 -4 0 -12q7 -8 12 -5q6 4 0 13zM450 417q2 4 -5 8q-7 2 -8 -2q-3 -5 4 -8q8 -2 9 2zM471 394q2 1 1.5 4.5t-3.5 5.5q-6 7 -10 3t1 -11q6 -6 11 -2zM557 319q2 7 -9 11q-9 3 -13 -4 q-2 -7 9 -11q9 -3 13 4zM599 316q0 8 -12 8q-10 0 -10 -8t11 -8t11 8zM638 323q-2 7 -13 5t-9 -9q2 -8 12 -6t10 10zM1280 640q0 212 -150 362t-362 150t-362 -150t-150 -362q0 -167 98 -300.5t252 -185.5q18 -3 26.5 5t8.5 20q0 52 -1 95q-6 -1 -15.5 -2.5t-35.5 -2t-48 4 t-43.5 20t-29.5 41.5q-23 59 -57 74q-2 1 -4.5 3.5l-8 8t-7 9.5t4 7.5t19.5 3.5q6 0 15 -2t30 -15.5t33 -35.5q16 -28 37.5 -42t43.5 -14t38 3.5t30 9.5q7 47 33 69q-49 6 -86 18.5t-73 39t-55.5 76t-19.5 119.5q0 79 53 137q-24 62 5 136q19 6 54.5 -7.5t60.5 -29.5l26 -16 q58 17 128 17t128 -17q11 7 28.5 18t55.5 26t57 9q29 -74 5 -136q53 -58 53 -137q0 -57 -14 -100.5t-35.5 -70t-53.5 -44.5t-62.5 -26t-68.5 -12q35 -31 35 -95q0 -40 -0.5 -89t-0.5 -51q0 -12 8.5 -20t26.5 -5q154 52 252 185.5t98 300.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf093;" horiz-adv-x="1664" d="M1280 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 288v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h427q21 -56 70.5 -92 t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68zM1339 936q-17 -40 -59 -40h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69z" /> +<glyph unicode="&#xf094;" d="M1407 710q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5 q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275zM1535 712q0 -165 -70 -327.5t-196 -288t-281 -180.5q-124 -44 -326 -44 q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5 q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5z" /> +<glyph unicode="&#xf095;" horiz-adv-x="1408" d="M1408 296q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5 q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235t235 -174 q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21z" /> +<glyph unicode="&#xf096;" horiz-adv-x="1408" d="M1120 1280h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832 q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf097;" horiz-adv-x="1280" d="M1152 1280h-1024v-1242l423 406l89 85l89 -85l423 -406v1242zM1164 1408q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62v1289 q0 34 19.5 62t52.5 41q21 9 44 9h1048z" /> +<glyph unicode="&#xf098;" d="M1280 343q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5 t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5q6 -2 30 -11t33 -12.5 t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf099;" horiz-adv-x="1664" d="M1620 1128q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41 q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50z" /> +<glyph unicode="&#xf09a;" horiz-adv-x="1024" d="M959 1524v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12z" /> +<glyph unicode="&#xf09b;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -40 7t-13 30q0 3 0.5 76.5t0.5 134.5q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 119 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44l-38 -24 q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-85 13.5q-45 -113 -8 -204q-79 -87 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-39 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3q-21 0 -29 -4.5 t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -88.5t0.5 -54.5q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5q0 209 103 385.5t279.5 279.5t385.5 103zM291 305q3 7 -7 12 q-10 3 -13 -2q-3 -7 7 -12q9 -6 13 2zM322 271q7 5 -2 16q-10 9 -16 3q-7 -5 2 -16q10 -10 16 -3zM352 226q9 7 0 19q-8 13 -17 6q-9 -5 0 -18t17 -7zM394 184q8 8 -4 19q-12 12 -20 3q-9 -8 4 -19q12 -12 20 -3zM451 159q3 11 -13 16q-15 4 -19 -7t13 -15q15 -6 19 6z M514 154q0 13 -17 11q-16 0 -16 -11q0 -13 17 -11q16 0 16 11zM572 164q-2 11 -18 9q-16 -3 -14 -15t18 -8t14 14z" /> +<glyph unicode="&#xf09c;" horiz-adv-x="1664" d="M1664 960v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5 t316.5 -131.5t131.5 -316.5z" /> +<glyph unicode="&#xf09d;" horiz-adv-x="1920" d="M1760 1408q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1600zM160 1280q-13 0 -22.5 -9.5t-9.5 -22.5v-224h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600zM1760 0q13 0 22.5 9.5t9.5 22.5v608h-1664v-608 q0 -13 9.5 -22.5t22.5 -9.5h1600zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" /> +<glyph unicode="&#xf09e;" horiz-adv-x="1408" d="M384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 69q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5t-391.5 184.5q-25 2 -41.5 20t-16.5 43v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5 t259 -181.5q114 -113 181.5 -259t80.5 -306zM1408 67q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102q-25 1 -42.5 19.5t-17.5 43.5v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294 q187 -186 294 -425.5t120 -501.5z" /> +<glyph unicode="&#xf0a0;" d="M1040 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1296 320q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5zM1408 160v320q0 13 -9.5 22.5t-22.5 9.5 h-1216q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM1536 480v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113v320q0 25 16 75 l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75z" /> +<glyph unicode="&#xf0a1;" horiz-adv-x="1792" d="M1664 896q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5 t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384zM1536 292v954q-394 -302 -768 -343v-270q377 -42 768 -341z" /> +<glyph unicode="&#xf0a2;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM246 128h1300q-266 300 -266 832q0 51 -24 105t-69 103t-121.5 80.5t-169.5 31.5t-169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -532 -266 -832z M1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5 t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> +<glyph unicode="&#xf0a3;" d="M1376 640l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53q-41 -12 -70 19q-31 29 -19 70 l53 186l-188 48q-40 10 -52 51q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70 l-53 -186l188 -48q40 -10 52 -51q10 -42 -20 -70z" /> +<glyph unicode="&#xf0a4;" horiz-adv-x="1792" d="M256 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1664 768q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106 q-69 -57 -140 -57h-32v-640h32q72 0 167 -32t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90zM1792 769q0 -105 -75.5 -181t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5 t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179z" /> +<glyph unicode="&#xf0a5;" horiz-adv-x="1792" d="M1376 128h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576 q-50 0 -89 -38.5t-39 -89.5q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32zM1664 192q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45 t45 -19t45 19t19 45zM1792 768v-640q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181q0 103 76 179t180 76h374q-22 60 -22 128 q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5z" /> +<glyph unicode="&#xf0a6;" d="M1280 -64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 700q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576 q-20 0 -48.5 15t-55 33t-68 33t-84.5 15q-67 0 -97.5 -44.5t-30.5 -115.5q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140v-32h640v32q0 72 32 167t64 193.5t32 179.5zM1536 705q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5 t-90.5 -37.5h-640q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76 q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227z" /> +<glyph unicode="&#xf0a7;" d="M1408 576q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33 t55 33t48.5 15v-576q0 -50 38.5 -89t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5zM1280 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1536 580 q0 -142 -77.5 -230t-217.5 -87l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100 q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317z" /> +<glyph unicode="&#xf0a8;" d="M1280 576v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45t18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502q26 0 45 19t19 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf0a9;" d="M1285 640q0 27 -18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18l362 362l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf0aa;" d="M1284 641q0 27 -18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45t18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf0ab;" d="M1284 639q0 27 -18 45l-91 91q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45t18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf0ac;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1042 887q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11 q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5 q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5 q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5 t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3 q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25 q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5q-16 0 -22 -1q-146 -80 -235 -222q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5 t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5 t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21 q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5 q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3 q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5 t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5 q15 10 -7 16q-17 5 -43 -12zM879 10q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7t-10 1.5t-11.5 -7 q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5q0 -6 2 -16z" /> +<glyph unicode="&#xf0ad;" horiz-adv-x="1664" d="M384 64q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1028 484l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5zM1662 919q0 -39 -23 -106q-47 -134 -164.5 -217.5 t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q58 0 121.5 -16.5t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25z" /> +<glyph unicode="&#xf0ae;" horiz-adv-x="1792" d="M1024 128h640v128h-640v-128zM640 640h1024v128h-1024v-128zM1280 1152h384v128h-384v-128zM1792 320v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 832v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19 t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45zM1792 1344v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0b0;" horiz-adv-x="1408" d="M1403 1241q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70q17 39 59 39h1280q42 0 59 -39z" /> +<glyph unicode="&#xf0b1;" horiz-adv-x="1792" d="M640 1280h512v128h-512v-128zM1792 640v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672zM1024 640v-128h-256v128h256zM1792 1120v-384h-1792v384q0 66 47 113t113 47h352v160q0 40 28 68 t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf0b2;" d="M1283 995l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l144 -144 l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19z " /> +<glyph unicode="&#xf0c0;" horiz-adv-x="1920" d="M593 640q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256zM1664 3q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5zM640 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75 t75 -181zM1344 896q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5zM1920 671q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128q81 117 81 256q0 29 -5 66q66 -23 133 -23q59 0 119 21.5t97.5 42.5 t43.5 21q124 0 124 -353zM1792 1280q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181z" /> +<glyph unicode="&#xf0c1;" horiz-adv-x="1664" d="M1456 320q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26 l147 146q28 28 28 67zM753 1025q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15 t21.5 -21.5t18.5 -19q33 31 33 73zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204t85 203l147 146q83 83 203 83q121 0 204 -85l206 -207 q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204z" /> +<glyph unicode="&#xf0c2;" horiz-adv-x="1920" d="M1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5z " /> +<glyph unicode="&#xf0c3;" horiz-adv-x="1664" d="M1527 88q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5t21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399zM748 813l-272 -429h712l-272 429l-20 31v37v399h-128v-399v-37z" /> +<glyph unicode="&#xf0c4;" horiz-adv-x="1792" d="M960 640q26 0 45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45t19 45t45 19zM1260 576l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148 q4 -48 -10 -97q4 -1 12 -5l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56zM579 836q46 42 21 108t-106 117q-92 59 -192 59q-74 0 -113 -36q-46 -42 -21 -108t106 -117q92 -59 192 -59q74 0 113 36zM494 91q81 51 106 117t-21 108 q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117t21 -108q39 -36 113 -36q100 0 192 59zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 480l96 -32l736 576l-128 64l-768 -431v-113l-160 -96l9 -8q2 -2 7 -6 q4 -4 11 -12t11 -12l26 -26zM1600 64l128 64l-520 408l-177 -138q-2 -3 -13 -7z" /> +<glyph unicode="&#xf0c5;" horiz-adv-x="1792" d="M1696 1152q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416zM1152 939l-299 -299h299v299zM512 1323l-299 -299 h299v299zM708 676l316 316v416h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h512v256q0 40 20 88t48 76zM1664 -128v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640h896z" /> +<glyph unicode="&#xf0c6;" horiz-adv-x="1408" d="M1404 151q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776q-113 115 -113 271q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181 l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235 z" /> +<glyph unicode="&#xf0c7;" d="M384 0h768v384h-768v-384zM1280 0h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416zM896 928v320q0 13 -9.5 22.5t-22.5 9.5 h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5zM1536 896v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88z" /> +<glyph unicode="&#xf0c8;" d="M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf0c9;" d="M1536 192v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 704v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1536 1216v-128q0 -26 -19 -45 t-45 -19h-1408q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0ca;" horiz-adv-x="1792" d="M384 128q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 640q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 224v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5 t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1152q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z M1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> +<glyph unicode="&#xf0cb;" horiz-adv-x="1792" d="M381 -84q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88zM383 543v-159h-362 q-6 36 -6 54q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105zM1792 224v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM384 1123v-99h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54l-71 76l136 127h106v-404h108zM1792 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5 t-9.5 22.5v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5zM1792 1248v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5z" /> +<glyph unicode="&#xf0cc;" horiz-adv-x="1792" d="M1760 640q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h1728zM483 704q-28 35 -51 80q-48 97 -48 188q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6 l-14 2q-50 149 -103 205q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743zM990 448h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23 l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71z" /> +<glyph unicode="&#xf0cd;" d="M48 1313q-37 2 -45 4l-3 88q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47 q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41 q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39zM1536 -96v64q0 14 -9 23t-23 9h-1472 q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23z" /> +<glyph unicode="&#xf0ce;" horiz-adv-x="1664" d="M512 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 160v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23 v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM512 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 160v192 q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1024 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 544v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192 q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1536 928v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM1664 1248v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113 z" /> +<glyph unicode="&#xf0d0;" horiz-adv-x="1664" d="M1190 955l293 293l-107 107l-293 -293zM1637 1248q0 -27 -18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45t18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45zM286 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM636 1276 l196 -60l-196 -60l-60 -196l-60 196l-196 60l196 60l60 196zM1566 798l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98zM926 1438l98 -30l-98 -30l-30 -98l-30 98l-98 30l98 30l30 98z" /> +<glyph unicode="&#xf0d1;" horiz-adv-x="1792" d="M640 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM1536 128q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1792 1216v-1024q0 -15 -4 -26.5t-13.5 -18.5 t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5q0 26 19 45t45 19v320q0 8 -0.5 35t0 38 t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0d2;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134 q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33 q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf0d3;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5q-104 0 -194.5 -28.5t-153 -76.5 t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5 t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960z" /> +<glyph unicode="&#xf0d4;" d="M917 631q0 26 -6 64h-362v-132h217q-3 -24 -16.5 -50t-37.5 -53t-66.5 -44.5t-96.5 -17.5q-99 0 -169 71t-70 171t70 171t169 71q92 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585 h109v110h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf0d5;" horiz-adv-x="2304" d="M1437 623q0 -208 -87 -370.5t-248 -254t-369 -91.5q-149 0 -285 58t-234 156t-156 234t-58 285t58 285t156 234t234 156t285 58q286 0 491 -192l-199 -191q-117 113 -292 113q-123 0 -227.5 -62t-165.5 -168.5t-61 -232.5t61 -232.5t165.5 -168.5t227.5 -62 q83 0 152.5 23t114.5 57.5t78.5 78.5t49 83t21.5 74h-416v252h692q12 -63 12 -122zM2304 745v-210h-209v-209h-210v209h-209v210h209v209h210v-209h209z" /> +<glyph unicode="&#xf0d6;" horiz-adv-x="1920" d="M768 384h384v96h-128v448h-114l-148 -137l77 -80q42 37 55 57h2v-288h-128v-96zM1280 640q0 -70 -21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142t21 142t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142zM1792 384 v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512q106 0 181 -75t75 -181h1152q0 106 75 181t181 75zM1920 1216v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0d7;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0d8;" horiz-adv-x="1024" d="M1024 320q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> +<glyph unicode="&#xf0d9;" horiz-adv-x="640" d="M640 1088v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45t19 45l448 448q19 19 45 19t45 -19t19 -45z" /> +<glyph unicode="&#xf0da;" horiz-adv-x="640" d="M576 640q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45z" /> +<glyph unicode="&#xf0db;" horiz-adv-x="1664" d="M160 0h608v1152h-640v-1120q0 -13 9.5 -22.5t22.5 -9.5zM1536 32v1120h-640v-1152h608q13 0 22.5 9.5t9.5 22.5zM1664 1248v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf0dc;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45zM1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> +<glyph unicode="&#xf0dd;" horiz-adv-x="1024" d="M1024 448q0 -26 -19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45t19 45t45 19h896q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0de;" horiz-adv-x="1024" d="M1024 832q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45z" /> +<glyph unicode="&#xf0e0;" horiz-adv-x="1792" d="M1792 826v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87zM1792 1120q0 -79 -49 -151t-122 -123 q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5q0 78 41.5 130t118.5 52h1472q65 0 112.5 -47t47.5 -113z" /> +<glyph unicode="&#xf0e1;" d="M349 911v-991h-330v991h330zM370 1217q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5zM1536 488v-568h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329 q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5z" /> +<glyph unicode="&#xf0e2;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298z" /> +<glyph unicode="&#xf0e3;" horiz-adv-x="1792" d="M1771 0q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5 t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14 q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28 q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91z" /> +<glyph unicode="&#xf0e4;" horiz-adv-x="1792" d="M384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM576 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1004 351l101 382q6 26 -7.5 48.5t-38.5 29.5 t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5t-63 -98.5q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91zM1664 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 1024q0 53 -37.5 90.5 t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1472 832q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 384q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29 q-141 221 -141 483q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="&#xf0e5;" horiz-adv-x="1792" d="M896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640 q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 174 120 321.5 t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> +<glyph unicode="&#xf0e6;" horiz-adv-x="1792" d="M704 1152q-153 0 -286 -52t-211.5 -141t-78.5 -191q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52zM704 1280q191 0 353.5 -68.5t256.5 -186.5t94 -257t-94 -257 t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224q0 139 94 257t256.5 186.5 t353.5 68.5zM1526 111q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132q58 -4 88 -4q161 0 309 45t264 129 q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5z" /> +<glyph unicode="&#xf0e7;" horiz-adv-x="896" d="M885 970q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15z" /> +<glyph unicode="&#xf0e8;" horiz-adv-x="1792" d="M1792 288v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320 q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68 z" /> +<glyph unicode="&#xf0e9;" horiz-adv-x="1664" d="M896 708v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11zM1664 681q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97 q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69 q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7zM896 1408v-98q-42 2 -64 2t-64 -2v98q0 26 19 45t45 19t45 -19t19 -45z" /> +<glyph unicode="&#xf0ea;" horiz-adv-x="1792" d="M768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1024 1312v64q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5zM1280 640h299l-299 299v-299zM1792 512v-672q0 -40 -28 -68t-68 -28 h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88z" /> +<glyph unicode="&#xf0eb;" horiz-adv-x="1024" d="M736 960q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5t9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90zM896 960q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134 q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180zM1024 960q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47 q0 -46 -31.5 -71t-77.5 -25q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268q0 99 44.5 184.5t117 142t164 89t186.5 32.5 t186.5 -32.5t164 -89t117 -142t44.5 -184.5z" /> +<glyph unicode="&#xf0ec;" horiz-adv-x="1792" d="M1792 352v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5zM1792 896q0 -14 -9 -23l-320 -320q-9 -9 -23 -9 q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23z" /> +<glyph unicode="&#xf0ed;" horiz-adv-x="1920" d="M1280 608q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> +<glyph unicode="&#xf0ee;" horiz-adv-x="1920" d="M1280 672q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5zM1920 384q0 -159 -112.5 -271.5t-271.5 -112.5h-1088 q-185 0 -316.5 131.5t-131.5 316.5q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5z" /> +<glyph unicode="&#xf0f0;" horiz-adv-x="1408" d="M384 192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56 t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68 t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5t81 -103t47.5 -132.5t24 -138t5.5 -131zM1088 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" /> +<glyph unicode="&#xf0f1;" horiz-adv-x="1408" d="M1280 832q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 832q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5t-131.5 271.5v132q-164 20 -274 128t-110 252v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48 t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252 t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136z" /> +<glyph unicode="&#xf0f2;" horiz-adv-x="1792" d="M640 1152h512v128h-512v-128zM288 1152v-1280h-64q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h64zM1408 1152v-1280h-1024v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128zM1792 928v-832q0 -92 -66 -158t-158 -66h-64v1280h64q92 0 158 -66 t66 -158z" /> +<glyph unicode="&#xf0f3;" horiz-adv-x="1792" d="M912 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM1728 128q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38t-38 90q50 42 91 88t85 119.5t74.5 158.5 t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q190 -28 307 -158.5t117 -282.5q0 -139 19.5 -260t50 -206t74.5 -158.5t85 -119.5t91 -88z" /> +<glyph unicode="&#xf0f4;" horiz-adv-x="1920" d="M1664 896q0 80 -56 136t-136 56h-64v-384h64q80 0 136 56t56 136zM0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM1856 896q0 -159 -112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158v736q0 26 19 45 t45 19h1152q159 0 271.5 -112.5t112.5 -271.5z" /> +<glyph unicode="&#xf0f5;" horiz-adv-x="1408" d="M640 1472v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45 t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45zM1408 1472v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0f6;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M384 736q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64zM1120 512q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704zM1120 256q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704 q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h704z" /> +<glyph unicode="&#xf0f7;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 992v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 1248v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1536h-1152v-1536h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM1408 1472v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0f8;" horiz-adv-x="1408" d="M384 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM384 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M1152 224v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM896 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M640 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 480v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5zM1152 736v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5z M896 -128h384v1152h-256v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224zM896 1056v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5 t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5zM1408 1088v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1280q0 26 19 45t45 19h320 v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0f9;" horiz-adv-x="1920" d="M640 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM1536 128q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5zM1664 800v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM1920 1344v-1152 q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128q-26 0 -45 19t-19 45t19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf0fa;" horiz-adv-x="1792" d="M1280 416v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23zM640 1152h512v128h-512v-128zM256 1152v-1280h-32 q-92 0 -158 66t-66 158v832q0 92 66 158t158 66h32zM1440 1152v-1280h-1088v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160zM1792 928v-832q0 -92 -66 -158t-158 -66h-32v1280h32q92 0 158 -66t66 -158z" /> +<glyph unicode="&#xf0fb;" horiz-adv-x="1920" d="M1920 576q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8l-192 24v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96 q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93z" /> +<glyph unicode="&#xf0fc;" horiz-adv-x="1664" d="M640 640v384h-256v-256q0 -53 37.5 -90.5t90.5 -37.5h128zM1664 192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320l-64 64l32 128h480l32 128h960l32 -192l-64 -32v-800z" /> +<glyph unicode="&#xf0fd;" d="M1280 192v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf0fe;" d="M1280 576v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf100;" horiz-adv-x="1024" d="M627 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23zM1011 160q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23z" /> +<glyph unicode="&#xf101;" horiz-adv-x="1024" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM979 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23 l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> +<glyph unicode="&#xf102;" horiz-adv-x="1152" d="M1075 224q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23zM1075 608q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393 q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> +<glyph unicode="&#xf103;" horiz-adv-x="1152" d="M1075 672q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23zM1075 1056q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23 t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> +<glyph unicode="&#xf104;" horiz-adv-x="640" d="M627 992q0 -13 -10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> +<glyph unicode="&#xf105;" horiz-adv-x="640" d="M595 576q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> +<glyph unicode="&#xf106;" horiz-adv-x="1152" d="M1075 352q0 -13 -10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23z" /> +<glyph unicode="&#xf107;" horiz-adv-x="1152" d="M1075 800q0 -13 -10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23z" /> +<glyph unicode="&#xf108;" horiz-adv-x="1920" d="M1792 544v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1376v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19 t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf109;" horiz-adv-x="1920" d="M416 256q-66 0 -113 47t-47 113v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088zM384 1120v-704q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5z M1760 192h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68v96h160h1600zM1040 96q16 0 16 16t-16 16h-160q-16 0 -16 -16t16 -16h160z" /> +<glyph unicode="&#xf10a;" horiz-adv-x="1152" d="M640 128q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1024 288v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5zM1152 1248v-1088q0 -66 -47 -113t-113 -47h-832 q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf10b;" horiz-adv-x="768" d="M464 128q0 33 -23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5zM672 288v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5zM480 1136 q0 16 -16 16h-160q-16 0 -16 -16t16 -16h160q16 0 16 16zM768 1152v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf10c;" d="M768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103 t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf10d;" horiz-adv-x="1664" d="M768 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z M1664 576v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136z" /> +<glyph unicode="&#xf10e;" horiz-adv-x="1664" d="M768 1216v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136zM1664 1216 v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136z" /> +<glyph unicode="&#xf110;" horiz-adv-x="1792" d="M526 142q0 -53 -37.5 -90.5t-90.5 -37.5q-52 0 -90 38t-38 90q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 -64q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM320 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1522 142q0 -52 -38 -90t-90 -38q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM558 1138q0 -66 -47 -113t-113 -47t-113 47t-47 113t47 113t113 47t113 -47t47 -113z M1728 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1088 1344q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1618 1138q0 -93 -66 -158.5t-158 -65.5q-93 0 -158.5 65.5t-65.5 158.5 q0 92 65.5 158t158.5 66q92 0 158 -66t66 -158z" /> +<glyph unicode="&#xf111;" d="M1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf112;" horiz-adv-x="1792" d="M1792 416q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19 l-512 512q-19 19 -19 45t19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333z" /> +<glyph unicode="&#xf113;" horiz-adv-x="1664" d="M640 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1280 320q0 -40 -12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82t12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82zM1440 320 q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11q-152 21 -195 21q-118 0 -187 -84t-69 -204q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5zM1664 496q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86 t-170 -47.5t-171.5 -22t-167 -4.5q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218 q0 -87 -27 -168q136 -160 136 -398z" /> +<glyph unicode="&#xf114;" horiz-adv-x="1664" d="M1536 224v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68zM1664 928v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320 q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158z" /> +<glyph unicode="&#xf115;" horiz-adv-x="1920" d="M1781 605q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39zM640 768h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68 v-853l256 315q44 53 116 87.5t140 34.5zM1909 605q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68z " /> +<glyph unicode="&#xf116;" horiz-adv-x="1792" /> +<glyph unicode="&#xf117;" horiz-adv-x="1792" /> +<glyph unicode="&#xf118;" d="M1134 461q-37 -121 -138 -195t-228 -74t-228 74t-138 195q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5 t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf119;" d="M1134 307q8 -25 -4 -48.5t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5q37 121 138 195t228 74t228 -74t138 -195zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204 t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf11a;" d="M1152 448q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h640q26 0 45 -19t19 -45zM640 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1152 896q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf11b;" horiz-adv-x="1920" d="M832 448v128q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23zM1408 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1920 512q0 -212 -150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150 t-150 362t150 362t362 150h896q212 0 362 -150t150 -362z" /> +<glyph unicode="&#xf11c;" horiz-adv-x="1920" d="M384 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM512 624v-96q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h224q16 0 16 -16zM384 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 368v-96q0 -16 -16 -16 h-864q-16 0 -16 16v96q0 16 16 16h864q16 0 16 -16zM768 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM640 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1024 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16 h96q16 0 16 -16zM896 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1280 624v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 368v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1152 880v-96 q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1408 880v-96q0 -16 -16 -16h-96q-16 0 -16 16v96q0 16 16 16h96q16 0 16 -16zM1664 880v-352q0 -16 -16 -16h-224q-16 0 -16 16v96q0 16 16 16h112v240q0 16 16 16h96q16 0 16 -16zM1792 128v896h-1664v-896 h1664zM1920 1024v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5z" /> +<glyph unicode="&#xf11d;" horiz-adv-x="1792" d="M1664 491v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9 h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102 q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> +<glyph unicode="&#xf11e;" horiz-adv-x="1792" d="M832 536v192q-181 -16 -384 -117v-185q205 96 384 110zM832 954v197q-172 -8 -384 -126v-189q215 111 384 118zM1664 491v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2 q-23 0 -49 -3v-222h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92zM1664 918v189q-169 -91 -306 -91q-45 0 -78 8v-196q148 -42 384 90zM320 1280q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266 q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1792 1216v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8 q-32 19 -32 56v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55z" /> +<glyph unicode="&#xf120;" horiz-adv-x="1664" d="M585 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23zM1664 96v-64q0 -14 -9 -23t-23 -9h-960q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h960q14 0 23 -9 t9 -23z" /> +<glyph unicode="&#xf121;" horiz-adv-x="1920" d="M617 137l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23t10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23zM1208 1204l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5 l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5zM1865 553l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23t10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23z" /> +<glyph unicode="&#xf122;" horiz-adv-x="1792" d="M640 454v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45zM1792 416q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1 q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45t19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221q169 -173 169 -509z" /> +<glyph unicode="&#xf123;" horiz-adv-x="1664" d="M1186 579l257 250l-356 52l-66 10l-30 60l-159 322v-963l59 -31l318 -168l-60 355l-12 66zM1638 841l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5t54 34.5 l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5z" /> +<glyph unicode="&#xf124;" horiz-adv-x="1408" d="M1401 1187l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5t4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5z" /> +<glyph unicode="&#xf125;" horiz-adv-x="1664" d="M557 256h595v595zM512 301l595 595h-595v-595zM1664 224v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23 v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf126;" horiz-adv-x="1024" d="M288 64q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM288 1216q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM928 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1024 1088q0 -52 -26 -96.5t-70 -69.5 q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497 q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136z" /> +<glyph unicode="&#xf127;" horiz-adv-x="1664" d="M439 265l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23zM608 224v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM384 448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23t9 23t23 9h320 q14 0 23 -9t9 -23zM1648 320q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204zM1031 1044l-239 -18 l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56zM1664 960q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9 t-9 23t9 23t23 9h320q14 0 23 -9t9 -23zM1120 1504v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23v320q0 14 9 23t23 9t23 -9t9 -23zM1527 1353l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23t9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> +<glyph unicode="&#xf128;" horiz-adv-x="1024" d="M704 280v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28zM1020 880q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5 t-10.5 37.5v45q0 83 65 156.5t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25t5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5z" /> +<glyph unicode="&#xf129;" horiz-adv-x="640" d="M640 192v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45zM512 1344v-192q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v192 q0 26 19 45t45 19h256q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf12a;" horiz-adv-x="640" d="M512 288v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45zM542 1344l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45l-28 768q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45z" /> +<glyph unicode="&#xf12b;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1534 846v-206h-514l-3 27 q-4 28 -4 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80 h126z" /> +<glyph unicode="&#xf12c;" d="M897 167v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109zM1536 -50v-206h-514l-4 27 q-3 45 -3 46q0 64 26 117t65 86.5t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126z" /> +<glyph unicode="&#xf12d;" horiz-adv-x="1920" d="M896 128l336 384h-768l-336 -384h768zM1909 1205q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5t30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5z" /> +<glyph unicode="&#xf12e;" horiz-adv-x="1664" d="M1664 438q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5 t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89 q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117 q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143z" /> +<glyph unicode="&#xf130;" horiz-adv-x="1152" d="M1152 832v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5 t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45zM896 1216v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226v512q0 132 94 226t226 94t226 -94t94 -226z" /> +<glyph unicode="&#xf131;" horiz-adv-x="1408" d="M271 591l-101 -101q-42 103 -42 214v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113zM1385 1193l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128 q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23t10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23 t-10 -23zM1005 1325l-621 -621v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" /> +<glyph unicode="&#xf132;" horiz-adv-x="1280" d="M1088 576v640h-448v-1137q119 63 213 137q235 184 235 360zM1280 1344v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150 t-33.5 170.5v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf133;" horiz-adv-x="1664" d="M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf134;" horiz-adv-x="1408" d="M512 1344q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1408 1376v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800 q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37t3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113 q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25z" /> +<glyph unicode="&#xf135;" horiz-adv-x="1664" d="M1440 1088q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1664 1376q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85q-3 -1 -9 -1 q-14 0 -23 9l-64 64q-17 19 -5 39l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5z" /> +<glyph unicode="&#xf136;" horiz-adv-x="1792" d="M1745 763l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5z" /> +<glyph unicode="&#xf137;" d="M909 141l102 102q19 19 19 45t-19 45l-307 307l307 307q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf138;" d="M717 141l454 454q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf139;" d="M1165 397l102 102q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf13a;" d="M813 237l454 454q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l454 -454q19 -19 45 -19t45 19zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5 t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf13b;" horiz-adv-x="1408" d="M1130 939l16 175h-884l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674zM0 1408h1408l-128 -1438l-578 -162l-574 162z" /> +<glyph unicode="&#xf13c;" horiz-adv-x="1792" d="M275 1408h1505l-266 -1333l-804 -267l-698 267l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208z" /> +<glyph unicode="&#xf13d;" horiz-adv-x="1792" d="M960 1280q0 26 -19 45t-45 19t-45 -19t-19 -45t19 -45t45 -19t45 19t19 45zM1792 352v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30v352 q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192q26 0 45 -19 t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf13e;" horiz-adv-x="1152" d="M1056 768q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181 v-320h736z" /> +<glyph unicode="&#xf140;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM1152 640q0 159 -112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5zM1280 640q0 -212 -150 -362t-362 -150t-362 150 t-150 362t150 362t362 150t362 -150t150 -362zM1408 640q0 130 -51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5zM1536 640 q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf141;" horiz-adv-x="1408" d="M384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM896 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM1408 800v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf142;" horiz-adv-x="384" d="M384 288v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 800v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68zM384 1312v-192q0 -40 -28 -68t-68 -28h-192 q-40 0 -68 28t-28 68v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68z" /> +<glyph unicode="&#xf143;" d="M512 256q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM863 162q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10 t9 24zM1247 161q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128q13 0 23 10q11 9 9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf144;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM1152 585q32 18 32 55t-32 55l-544 320q-31 19 -64 1q-32 -19 -32 -56v-640q0 -37 32 -56 q16 -8 32 -8q17 0 32 9z" /> +<glyph unicode="&#xf145;" horiz-adv-x="1792" d="M1024 1084l316 -316l-572 -572l-316 316zM813 105l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45t19 -45l362 -362q18 -18 45 -18t45 18zM1702 742l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136 t-136 56t-136 -56l-125 126q-37 37 -37 90.5t37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5z" /> +<glyph unicode="&#xf146;" d="M1280 576v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128q0 -26 19 -45t45 -19h896q26 0 45 19t19 45zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" /> +<glyph unicode="&#xf147;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5 t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf148;" horiz-adv-x="1024" d="M1018 933q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68z" /> +<glyph unicode="&#xf149;" horiz-adv-x="1024" d="M32 1280h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34q9 19 29 19z" /> +<glyph unicode="&#xf14a;" d="M685 237l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l358 -358q19 -19 45 -19t45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5 t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf14b;" d="M404 428l152 -152l-52 -52h-56v96h-96v56zM818 818q14 -13 -3 -30l-291 -291q-17 -17 -30 -3q-14 13 3 30l291 291q17 17 30 3zM544 128l544 544l-288 288l-544 -544v-288h288zM1152 736l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28l-92 -92zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf14c;" d="M1280 608v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45t19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf14d;" d="M1005 435l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5 t224 23.5v-160q0 -42 40 -59q12 -5 24 -5q26 0 45 19zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf14e;" d="M640 448l256 128l-256 128v-256zM1024 1039v-542l-512 -256v542zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf150;" d="M1145 861q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66q17 35 57 35h640q40 0 57 -35zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf151;" d="M1145 419q-17 -35 -57 -35h-640q-40 0 -57 35q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf152;" d="M1088 640q0 -33 -27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52zM1280 160v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h960q14 0 23 9t9 23zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf153;" horiz-adv-x="1024" d="M976 229l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9 t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26 l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5l12 3l5 2q13 5 26 -2q12 -7 15 -21z" /> +<glyph unicode="&#xf154;" horiz-adv-x="1024" d="M1020 399v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7 q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5z" /> +<glyph unicode="&#xf155;" horiz-adv-x="1024" d="M978 351q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5t-17.5 18q-17 21 -2 41l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43 t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5 t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50 t53 -63.5t31.5 -76.5t13 -94z" /> +<glyph unicode="&#xf156;" horiz-adv-x="898" d="M898 1066v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102 q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf157;" horiz-adv-x="1027" d="M603 0h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214l-321 578q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61 l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5z" /> +<glyph unicode="&#xf158;" horiz-adv-x="1280" d="M1043 971q0 100 -65 162t-171 62h-320v-448h320q106 0 171 62t65 162zM1280 971q0 -193 -126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23v128 q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315z" /> +<glyph unicode="&#xf159;" horiz-adv-x="1792" d="M514 341l81 299h-159l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5zM630 768l35 128h-292l32 -128h225zM822 768h139l-35 128h-70zM1271 340l78 300h-162l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3zM1382 768l33 128h-297l34 -128h230zM1792 736v-64q0 -14 -9 -23 t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28 q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf15a;" horiz-adv-x="1280" d="M1167 896q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164 l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5zM952 351q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1t-47.5 -1v-338q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30 t24.5 40t9.5 51zM881 827q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51z" /> +<glyph unicode="&#xf15b;" d="M1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472zM896 992q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544z" /> +<glyph unicode="&#xf15c;" d="M1468 1060q14 -14 28 -36h-472v472q22 -14 36 -28zM992 896h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28zM1152 160v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h704q14 0 23 9t9 23z" /> +<glyph unicode="&#xf15d;" horiz-adv-x="1664" d="M1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1572 -23 v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121zM1661 874v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162 l230 -662h70z" /> +<glyph unicode="&#xf15e;" horiz-adv-x="1664" d="M1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1661 -150 v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287v106h70l230 662h162l230 -662h70zM1572 1001v-233h-584v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248 v119h121z" /> +<glyph unicode="&#xf160;" horiz-adv-x="1792" d="M736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23zM1792 -32v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832 q14 0 23 -9t9 -23zM1600 480v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1408 992v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1216 1504v-192q0 -14 -9 -23t-23 -9h-256 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf161;" horiz-adv-x="1792" d="M1216 -32v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192 q14 0 23 -9t9 -23zM1408 480v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23zM1600 992v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23zM1792 1504v-192q0 -14 -9 -23t-23 -9h-832 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf162;" d="M1346 223q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23 zM1486 165q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5 t82 -252.5zM1456 882v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165z" /> +<glyph unicode="&#xf163;" d="M1346 1247q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94t36.5 -95t104.5 -38q50 0 85 27t35 68zM736 96q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9 t9 -23zM1456 -142v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16h-2l-7 -12q-8 -13 -26 -31l-62 -58l-82 86l192 185h123v-654h165zM1486 1189q0 -62 -13 -121.5t-41 -114t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13 q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5z" /> +<glyph unicode="&#xf164;" horiz-adv-x="1664" d="M256 192q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5zM416 704v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45zM1600 704q0 -86 -55 -149q15 -44 15 -76 q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5v641q0 25 18 43.5t43 20.5q24 2 76 59t101 121q68 87 101 120q18 18 31 48t17.5 48.5 t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135z" /> +<glyph unicode="&#xf165;" horiz-adv-x="1664" d="M256 960q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5zM416 448v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640q0 -26 19 -45t45 -19h288q26 0 45 19t19 45zM1545 597q55 -61 55 -149q-1 -78 -57.5 -135 t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121 t-76 59q-25 2 -43 20.5t-18 43.5v641q0 26 19 44.5t45 19.5q35 1 158 44q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76z" /> +<glyph unicode="&#xf166;" d="M919 233v157q0 50 -29 50q-17 0 -33 -16v-224q16 -16 33 -16q29 0 29 49zM1103 355h66v34q0 51 -33 51t-33 -51v-34zM532 621v-70h-80v-423h-74v423h-78v70h232zM733 495v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54v290h66v-270q0 -24 1 -26q1 -15 15 -15 q20 0 42 31v280h67zM985 384v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74zM1236 255v-9q0 -29 -2 -43q-3 -22 -15 -40q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86v129q0 59 20 86q29 38 80 38t78 -38 q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68zM785 1079v-156q0 -51 -32 -51t-32 51v156q0 52 32 52t32 -52zM1318 366q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5 q-20 -87 -20 -260q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73q20 84 20 260zM563 1017l90 296h-75l-51 -195l-53 195h-78l24 -69t23 -69q35 -103 46 -158v-201h74v201zM852 936v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38 q-21 -29 -21 -87v-130q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87zM1033 816h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293q0 -37 6 -55q11 -27 43 -27q36 0 77 45v-40zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960 q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf167;" d="M971 292v-211q0 -67 -39 -67q-23 0 -45 22v301q22 22 45 22q39 0 39 -67zM1309 291v-46h-90v46q0 68 45 68t45 -68zM343 509h107v94h-312v-94h105v-569h100v569zM631 -60h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391q0 -49 8 -73 q12 -37 58 -37q48 0 102 61v-54zM1060 88v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89v-663h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100zM1398 98v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51 q-28 -37 -28 -116v-173q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54q2 9 2 58zM790 1011v210q0 69 -43 69t-43 -69v-210q0 -70 43 -70t43 70zM1509 260q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99 q-26 112 -26 350q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350zM511 1536h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187h106l71 -263zM881 1203v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51 q-28 38 -28 118v175q0 80 28 117q38 51 105 51q69 0 106 -51q28 -37 28 -117zM1216 1365v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91z" /> +<glyph unicode="&#xf168;" horiz-adv-x="1408" d="M597 869q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17t0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45zM1403 1511q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37q-10 -15 -32 -15h-239q-42 0 -66 45l-339 622q18 32 531 942 q25 45 64 45h241q22 0 31 -15z" /> +<glyph unicode="&#xf169;" d="M685 771q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29l125 -216v-1l-196 -346q-9 -14 0 -28q8 -13 24 -13h185q31 0 50 36zM1309 1268q-7 12 -24 12h-187q-30 0 -49 -35l-411 -729q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1 l409 723q8 16 0 28zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf16a;" horiz-adv-x="1792" d="M1280 640q0 37 -30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54zM1792 640q0 -96 -1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58t-69.5 123 q-14 65 -21.5 147.5t-8.5 136.5t-1 150t1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150z" /> +<glyph unicode="&#xf16b;" horiz-adv-x="1792" d="M402 829l494 -305l-342 -285l-490 319zM1388 274v-108l-490 -293v-1l-1 1l-1 -1v1l-489 293v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284zM554 1418l342 -285l-494 -304l-338 270zM1390 829l338 -271l-489 -319l-343 285zM1239 1418l489 -319l-338 -270l-494 304z" /> +<glyph unicode="&#xf16c;" d="M1289 -96h-1118v480h-160v-640h1438v640h-160v-480zM347 428l33 157l783 -165l-33 -156zM450 802l67 146l725 -339l-67 -145zM651 1158l102 123l614 -513l-102 -123zM1048 1536l477 -641l-128 -96l-477 641zM330 65v159h800v-159h-800z" /> +<glyph unicode="&#xf16d;" d="M1024 640q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM1162 640q0 -164 -115 -279t-279 -115t-279 115t-115 279t115 279t279 115t279 -115t115 -279zM1270 1050q0 -38 -27 -65t-65 -27t-65 27t-27 65t27 65t65 27t65 -27t27 -65zM768 1270 q-7 0 -76.5 0.5t-105.5 0t-96.5 -3t-103 -10t-71.5 -18.5q-50 -20 -88 -58t-58 -88q-11 -29 -18.5 -71.5t-10 -103t-3 -96.5t0 -105.5t0.5 -76.5t-0.5 -76.5t0 -105.5t3 -96.5t10 -103t18.5 -71.5q20 -50 58 -88t88 -58q29 -11 71.5 -18.5t103 -10t96.5 -3t105.5 0t76.5 0.5 t76.5 -0.5t105.5 0t96.5 3t103 10t71.5 18.5q50 20 88 58t58 88q11 29 18.5 71.5t10 103t3 96.5t0 105.5t-0.5 76.5t0.5 76.5t0 105.5t-3 96.5t-10 103t-18.5 71.5q-20 50 -58 88t-88 58q-29 11 -71.5 18.5t-103 10t-96.5 3t-105.5 0t-76.5 -0.5zM1536 640q0 -229 -5 -317 q-10 -208 -124 -322t-322 -124q-88 -5 -317 -5t-317 5q-208 10 -322 124t-124 322q-5 88 -5 317t5 317q10 208 124 322t322 124q88 5 317 5t317 -5q208 -10 322 -124t124 -322q5 -88 5 -317z" /> +<glyph unicode="&#xf16e;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM698 640q0 88 -62 150t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150zM1262 640q0 88 -62 150 t-150 62t-150 -62t-62 -150t62 -150t150 -62t150 62t62 150z" /> +<glyph unicode="&#xf170;" d="M768 914l201 -306h-402zM1133 384h94l-459 691l-459 -691h94l104 160h522zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf171;" horiz-adv-x="1408" d="M815 677q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82t52 58q36 18 72.5 12t64 -35.5t27.5 -67.5zM926 698q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5q4 -91 77.5 -155t165.5 -56q91 8 152 84t50 168zM1165 1240q-20 27 -56 44.5t-58 22 t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5zM1222 205q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18 t-76.5 27t-73 43.5t-52 61.5q-25 96 -57 292l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37zM1403 1166q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34t-6 39.5 t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54z" /> +<glyph unicode="&#xf172;" d="M848 666q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5t43.5 -70.5q39 -23 81 4t36 72zM928 682q8 -66 -36 -121t-110 -61t-119 40t-56 113q-2 49 25.5 93t72.5 64q70 31 141.5 -10t81.5 -118zM1100 1073q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5 t-52.5 16t-54.5 32.5q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5zM1142 327q0 7 5.5 26.5t3 32t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6l-5 -12q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71z M1272 1020q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63q24 13 39.5 23t31 29t19.5 40q48 267 80 473zM1536 1120 v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf173;" horiz-adv-x="1024" d="M944 207l80 -237q-23 -35 -111 -66t-177 -32q-104 -2 -190.5 26t-142.5 74t-95 106t-55.5 120t-16.5 118v544h-168v215q72 26 129 69.5t91 90t58 102t34 99t15 88.5q1 5 4.5 8.5t7.5 3.5h244v-424h333v-252h-334v-518q0 -30 6.5 -56t22.5 -52.5t49.5 -41.5t81.5 -14 q78 2 134 29z" /> +<glyph unicode="&#xf174;" d="M1136 75l-62 183q-44 -22 -103 -22q-36 -1 -62 10.5t-38.5 31.5t-17.5 40.5t-5 43.5v398h257v194h-256v326h-188q-8 0 -9 -10q-5 -44 -17.5 -87t-39 -95t-77 -95t-118.5 -68v-165h130v-418q0 -57 21.5 -115t65 -111t121 -85.5t176.5 -30.5q69 1 136.5 25t85.5 50z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf175;" horiz-adv-x="768" d="M765 237q8 -19 -5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19z" /> +<glyph unicode="&#xf176;" horiz-adv-x="768" d="M765 1043q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19t5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35z" /> +<glyph unicode="&#xf177;" horiz-adv-x="1792" d="M1792 736v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf178;" horiz-adv-x="1792" d="M1728 643q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23z" /> +<glyph unicode="&#xf179;" horiz-adv-x="1408" d="M1393 321q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65 q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126zM1017 1494q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10z" /> +<glyph unicode="&#xf17a;" horiz-adv-x="1664" d="M682 530v-651l-682 94v557h682zM682 1273v-659h-682v565zM1664 530v-786l-907 125v661h907zM1664 1408v-794h-907v669z" /> +<glyph unicode="&#xf17b;" horiz-adv-x="1408" d="M493 1053q16 0 27.5 11.5t11.5 27.5t-11.5 27.5t-27.5 11.5t-27 -11.5t-11 -27.5t11 -27.5t27 -11.5zM915 1053q16 0 27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5t11.5 -27.5t27.5 -11.5zM103 869q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30 t-73 30t-30 73v430q0 42 30 72t73 30zM1163 850v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78v666h918zM931 1255q107 -55 171 -153.5t64 -215.5 h-925q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20zM1408 767v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5z" /> +<glyph unicode="&#xf17c;" d="M663 1125q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5q0 12 19 15h10zM750 1111q-4 -1 -11.5 6.5t-17.5 4.5q24 11 32 -2q3 -6 -3 -9zM399 684q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2z M1254 325q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18l-4 -5q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54t7 -70.5q46 24 7 92 q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5t60 -22.5zM626 1152 q3 17 -2.5 30t-11.5 15q-9 2 -9 -7q2 -5 5 -6q10 0 7 -15q-3 -20 8 -20q3 0 3 3zM1045 955q-2 8 -6.5 11.5t-13 5t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20zM867 1168q0 11 -5 19.5t-11 12.5t-9 3q-14 -1 -7 -7l4 -2 q14 -4 18 -31q0 -3 8 2zM921 1401q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9t3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7zM1486 60q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5 t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5 t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48 q3 -17 37 -26q20 -6 84.5 -18.5t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195 q-12 112 -16 310q-2 90 24 151.5t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14 q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5 t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13t16.5 -9.5z" /> +<glyph unicode="&#xf17d;" d="M1024 36q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5t-103 -148l-15 11q184 -150 418 -150q132 0 256 52zM839 643q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81 t99.5 48l37 13q4 1 13 3.5t13 4.5zM732 855q-120 213 -244 378q-138 -65 -234 -186t-128 -272q302 0 606 80zM1416 536q-210 60 -409 29q87 -239 128 -469q111 75 185 189.5t96 250.5zM611 1277q-1 0 -2 -1q1 1 2 1zM1201 1132q-185 164 -433 164q-76 0 -155 -19 q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5zM1424 647q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5t36.5 -6 t25 -4.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf17e;" d="M1173 473q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5 t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75q0 -92 122 -157.5t291 -65.5 q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5q0 73 16 150q-80 104 -80 234q0 159 112.5 271.5t271.5 112.5q130 0 234 -80 q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234z" /> +<glyph unicode="&#xf180;" horiz-adv-x="1280" d="M1000 1102l37 194q5 23 -9 40t-35 17h-712q-23 0 -38.5 -17t-15.5 -37v-1101q0 -7 6 -1l291 352q23 26 38 33.5t48 7.5h239q22 0 37 14.5t18 29.5q24 130 37 191q4 21 -11.5 40t-36.5 19h-294q-29 0 -48 19t-19 48v42q0 29 19 47.5t48 18.5h346q18 0 35 13.5t20 29.5z M1227 1324q-15 -73 -53.5 -266.5t-69.5 -350t-35 -173.5q-6 -22 -9 -32.5t-14 -32.5t-24.5 -33t-38.5 -21t-58 -10h-271q-13 0 -22 -10q-8 -9 -426 -494q-22 -25 -58.5 -28.5t-48.5 5.5q-55 22 -55 98v1410q0 55 38 102.5t120 47.5h888q95 0 127 -53t10 -159zM1227 1324 l-158 -790q4 17 35 173.5t69.5 350t53.5 266.5z" /> +<glyph unicode="&#xf181;" d="M704 192v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1376 576v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640q0 -14 9 -23t23 -9h480q14 0 23 9t9 23zM1536 1344v-1408q0 -26 -19 -45t-45 -19h-1408 q-26 0 -45 19t-19 45v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf182;" horiz-adv-x="1280" d="M1280 480q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43 q-40 0 -68 28t-28 68q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53zM864 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> +<glyph unicode="&#xf183;" horiz-adv-x="1024" d="M1024 832v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136z M736 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> +<glyph unicode="&#xf184;" d="M773 234l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85t24.5 -59zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf185;" horiz-adv-x="1792" d="M1472 640q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5t45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5zM1748 363q-4 -15 -20 -20l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4 l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94 q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29z" /> +<glyph unicode="&#xf186;" d="M1262 233q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5zM1465 318q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38z" /> +<glyph unicode="&#xf187;" horiz-adv-x="1792" d="M1088 704q0 26 -19 45t-45 19h-256q-26 0 -45 -19t-19 -45t19 -45t45 -19h256q26 0 45 19t19 45zM1664 896v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45zM1728 1344v-256q0 -26 -19 -45t-45 -19h-1536 q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf188;" horiz-adv-x="1664" d="M1632 576q0 -26 -19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207 q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45t19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19 t19 -45zM1152 1152h-640q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5z" /> +<glyph unicode="&#xf189;" horiz-adv-x="1920" d="M1917 1016q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12q-30 21 -70 64t-68.5 77.5t-61 58 t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211t-130.5 272q-6 16 -6 27t3 16l4 6 q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24q17 19 38 30q53 26 239 24 q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5t13 3t20 0.5l288 2 q39 5 64 -2.5t31 -16.5z" /> +<glyph unicode="&#xf18a;" horiz-adv-x="1792" d="M675 252q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5t43 -50.5t74.5 -2.5t62.5 47.5zM769 373q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5q-17 -31 13 -45q14 -5 29 0.5t22 18.5zM943 266q-45 -102 -158 -150t-224 -12 q-107 34 -147.5 126.5t6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5zM1255 426q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5zM1563 422 q0 -68 -37 -139.5t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178 q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5zM1489 1046q42 -47 54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5z M1670 1209q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5t9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5z" /> +<glyph unicode="&#xf18b;" d="M1133 -34q-171 -94 -368 -94q-196 0 -367 94q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211zM638 1394v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495q0 187 83.5 349.5t229.5 269.5t325 137zM1536 638q0 -280 -181 -495 q-204 99 -330.5 306.5t-126.5 459.5v485q179 -30 325 -137t229.5 -269.5t83.5 -349.5z" /> +<glyph unicode="&#xf18c;" horiz-adv-x="1408" d="M1402 433q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32t13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5 t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56 t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5 t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5z" /> +<glyph unicode="&#xf18d;" horiz-adv-x="1280" d="M1259 283v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5v66h1238zM1259 609v-255h-1238v255h1238zM1259 937v-255h-1238v255h1238zM1259 1077v-67h-1238v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5z " /> +<glyph unicode="&#xf18e;" d="M1152 640q0 -14 -9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf190;" d="M1152 736v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23t9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5zM1312 640q0 148 -73 273t-198 198t-273 73t-273 -73t-198 -198 t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf191;" d="M1024 960v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52t27 52l448 320q17 12 37 12q26 0 45 -19t19 -45zM1280 160v960q0 13 -9.5 22.5t-22.5 9.5h-960q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5z M1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf192;" d="M1024 640q0 -106 -75 -181t-181 -75t-181 75t-75 181t75 181t181 75t181 -75t75 -181zM768 1184q-148 0 -273 -73t-198 -198t-73 -273t73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73zM1536 640q0 -209 -103 -385.5t-279.5 -279.5 t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf193;" horiz-adv-x="1664" d="M1023 349l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5zM1571 249l58 -114l-256 -128 q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5l-96 779q-2 16 6 42q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455z" /> +<glyph unicode="&#xf194;" d="M1292 898q10 216 -161 222q-231 8 -312 -261q44 19 82 19q85 0 74 -96q-4 -57 -74 -167t-105 -110q-43 0 -82 169q-13 54 -45 255q-30 189 -160 177q-59 -7 -164 -100l-81 -72l-81 -72l52 -67q76 52 87 52q57 0 107 -179q15 -55 45 -164.5t45 -164.5q68 -179 164 -179 q157 0 383 294q220 283 226 444zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf195;" horiz-adv-x="1152" d="M1152 704q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160 q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf196;" horiz-adv-x="1408" d="M1152 736v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23zM1280 288v832q0 66 -47 113t-113 47h-832 q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113zM1408 1120v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf197;" horiz-adv-x="2176" d="M620 416q-110 -64 -268 -64h-128v64h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5t38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40 t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113zM1739 668q53 -36 53 -92t-53 -92l81 -30q68 48 68 122t-68 122zM625 400h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96l-93 464h29 q157 0 273 64zM352 816h-29l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64z" /> +<glyph unicode="&#xf198;" horiz-adv-x="1664" d="M1519 760q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72l-55 163l-153 -53q-29 -9 -50 -9 q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102 t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8zM725 498l310 105l-105 315l-310 -107z" /> +<glyph unicode="&#xf199;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM1280 352v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99q-98 -69 -164 -69v0v0q-66 0 -164 69 q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436q0 -40 28 -68t68 -28h832q40 0 68 28t28 68zM1280 925q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13 t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5z" /> +<glyph unicode="&#xf19a;" horiz-adv-x="1792" d="M127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM1415 679q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15t-1.5 -18.5t9 -16.5 t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21 t14.5 -24t14 -23q63 -107 63 -212zM909 573l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1570 1009q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5l235 678q59 169 59 276q0 42 -6 79zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286 t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 -215q173 0 331.5 68t273 182.5t182.5 273t68 331.5t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5t68 -331.5t182.5 -273 t273 -182.5t331.5 -68z" /> +<glyph unicode="&#xf19b;" horiz-adv-x="1792" d="M1086 1536v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360zM1755 954l37 -390l-525 114l147 83q-119 70 -280 99v172q277 -33 481 -157z" /> +<glyph unicode="&#xf19c;" horiz-adv-x="2048" d="M960 1536l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128v128zM256 896h256v-768h128v768h256v-768h128v768h256v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664v64q0 26 20.5 45t48.5 19h59v768zM1851 -64 q28 0 48.5 -19t20.5 -45v-128h-1920v128q0 26 20.5 45t48.5 19h1782z" /> +<glyph unicode="&#xf19d;" horiz-adv-x="2304" d="M1774 700l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128l18 316l574 -181q22 -7 48 -7t48 7zM2304 1024q0 -23 -22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433 q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31t22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31z" /> +<glyph unicode="&#xf19e;" d="M859 579l13 -707q-62 11 -105 11q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14v0 q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610z" /> +<glyph unicode="&#xf1a0;" d="M768 750h725q12 -67 12 -128q0 -217 -91 -387.5t-259.5 -266.5t-386.5 -96q-157 0 -299 60.5t-245 163.5t-163.5 245t-60.5 299t60.5 299t163.5 245t245 163.5t299 60.5q300 0 515 -201l-209 -201q-123 119 -306 119q-129 0 -238.5 -65t-173.5 -176.5t-64 -243.5 t64 -243.5t173.5 -176.5t238.5 -65q87 0 160 24t120 60t82 82t51.5 87t22.5 78h-436v264z" /> +<glyph unicode="&#xf1a1;" horiz-adv-x="1792" d="M1095 369q16 -16 0 -31q-62 -62 -199 -62t-199 62q-16 15 0 31q6 6 15 6t15 -6q48 -49 169 -49q120 0 169 49q6 6 15 6t15 -6zM788 550q0 -37 -26 -63t-63 -26t-63.5 26t-26.5 63q0 38 26.5 64t63.5 26t63 -26.5t26 -63.5zM1183 550q0 -37 -26.5 -63t-63.5 -26t-63 26 t-26 63t26 63.5t63 26.5t63.5 -26t26.5 -64zM1434 670q0 49 -35 84t-85 35t-86 -36q-130 90 -311 96l63 283l200 -45q0 -37 26 -63t63 -26t63.5 26.5t26.5 63.5t-26.5 63.5t-63.5 26.5q-54 0 -80 -50l-221 49q-19 5 -25 -16l-69 -312q-180 -7 -309 -97q-35 37 -87 37 q-50 0 -85 -35t-35 -84q0 -35 18.5 -64t49.5 -44q-6 -27 -6 -56q0 -142 140 -243t337 -101q198 0 338 101t140 243q0 32 -7 57q30 15 48 43.5t18 63.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191 t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="&#xf1a2;" d="M939 407q13 -13 0 -26q-53 -53 -171 -53t-171 53q-13 13 0 26q5 6 13 6t13 -6q42 -42 145 -42t145 42q5 6 13 6t13 -6zM676 563q0 -31 -23 -54t-54 -23t-54 23t-23 54q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1014 563q0 -31 -23 -54t-54 -23t-54 23t-23 54 q0 32 22.5 54.5t54.5 22.5t54.5 -22.5t22.5 -54.5zM1229 666q0 42 -30 72t-73 30q-42 0 -73 -31q-113 78 -267 82l54 243l171 -39q1 -32 23.5 -54t53.5 -22q32 0 54.5 22.5t22.5 54.5t-22.5 54.5t-54.5 22.5q-48 0 -69 -43l-189 42q-17 5 -21 -13l-60 -268q-154 -6 -265 -83 q-30 32 -74 32q-43 0 -73 -30t-30 -72q0 -30 16 -55t42 -38q-5 -25 -5 -48q0 -122 120 -208.5t289 -86.5q170 0 290 86.5t120 208.5q0 25 -6 49q25 13 40.5 37.5t15.5 54.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf1a3;" d="M866 697l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14q19 0 32.5 -14t13.5 -33v-54zM1199 502v122h-150 v-126q0 -20 -13.5 -33.5t-33.5 -13.5q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123q0 -80 58 -137t139 -57t138.5 57t57.5 139zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103 t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf1a4;" horiz-adv-x="1920" d="M1062 824v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58zM1592 602h328 v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275z" /> +<glyph unicode="&#xf1a5;" d="M1472 160v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480h704v-704h480q93 0 158.5 65.5t65.5 158.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" /> +<glyph unicode="&#xf1a6;" horiz-adv-x="2048" d="M328 1254h204v-983h-532v697h328v286zM328 435v369h-123v-369h123zM614 968v-697h205v697h-205zM614 1254v-204h205v204h-205zM901 968h533v-942h-533v163h328v82h-328v697zM1229 435v369h-123v-369h123zM1516 968h532v-942h-532v163h327v82h-327v697zM1843 435v369h-123 v-369h123z" /> +<glyph unicode="&#xf1a7;" d="M1046 516q0 -64 -38 -109t-91 -45q-43 0 -70 15v277q28 17 70 17q53 0 91 -45.5t38 -109.5zM703 944q0 -64 -38 -109.5t-91 -45.5q-43 0 -70 15v277q28 17 70 17q53 0 91 -45t38 -109zM1265 513q0 134 -88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101 v-636l211 41v206q51 -19 117 -19q125 0 213 95t88 229zM922 940q0 134 -88.5 229t-213.5 95q-74 0 -141 -36h-186v-840l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960 q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf1a8;" horiz-adv-x="2038" d="M1222 607q75 3 143.5 -20.5t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14 q6 -5 28 -23.5t25.5 -22t19 -18t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24 q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33 q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5 t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5zM1282 842q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43 q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5 t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM822 568l48 12l109 -177l-73 -48zM1323 51q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13 t-54 -9.5t-53.5 -7.5t-32 -4.5l-7 43q21 2 60.5 8.5t72 10t60.5 3.5h14zM866 679l-96 -20l-6 17q10 1 32.5 7t34.5 6q19 0 35 -10zM1061 45h31l10 -83l-41 -12v95zM1950 1535v1v-1zM1950 1535l-1 -5l-2 -2l1 3zM1950 1535l1 1z" /> +<glyph unicode="&#xf1a9;" d="M1167 -50q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16t7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29zM1128 65q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10 q-29 -12 -78 -56q-26 -24 -12 -44q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34zM1483 346q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14 q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106zM1536 506q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44 q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5t19.5 -177.5z" /> +<glyph unicode="&#xf1aa;" d="M1070 463l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5t-60 145.5q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160z M729 1145l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5q-70 15 -115 71t-45 129q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5 t149.5 -87.5zM1536 78q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30l-152 152l-160 160l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5 q76 -11 126.5 -68.5t50.5 -134.5zM1534 1202q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152l-160 -160l-152 152l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126 t135.5 51q85 0 145 -60.5t60 -145.5z" /> +<glyph unicode="&#xf1ab;" d="M654 458q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110q-4 -2 -19.5 -4t-18.5 0q6 4 82 92q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5 q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28 q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5zM449 944q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17zM1147 815l63 -227l-139 42zM39 15l694 232v1032l-694 -233v-1031z M1280 332l102 -31l-181 657l-100 31l-216 -536l102 -31l45 110l211 -65zM777 1294l573 -184v380zM1088 -29l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11 q73 -37 159.5 -61.5t157.5 -24.5q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5zM1536 1050v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5 q20 0 20 -21v-418z" /> +<glyph unicode="&#xf1ac;" horiz-adv-x="1792" d="M288 1152q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h128zM1664 989q58 -34 93 -93t35 -128v-768q0 -106 -75 -181t-181 -75h-864q-66 0 -113 47t-47 113v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48 l152 -152q28 -28 48 -76t20 -88v-163zM928 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM928 512v128q0 14 -9 23 t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1184 256v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23zM1184 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 0v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 256v128q0 14 -9 23t-23 9h-128 q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1440 512v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128q0 -14 9 -23t23 -9h128q14 0 23 9t9 23zM1536 896v256h-160q-40 0 -68 28t-28 68v160h-640v-512h896z" /> +<glyph unicode="&#xf1ad;" d="M1344 1536q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h1280zM512 1248v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 992v-64q0 -14 9 -23t23 -9h64q14 0 23 9 t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 736v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM512 480v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 160v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM384 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM384 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 -96v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23zM896 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 928v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM896 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 160v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64 q14 0 23 9t9 23zM1152 416v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 672v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 928v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1152 1184v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64q0 -14 9 -23t23 -9h64q14 0 23 9t9 23z" /> +<glyph unicode="&#xf1ae;" horiz-adv-x="1280" d="M1188 988l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68t28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68zM864 1152q0 -93 -65.5 -158.5 t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5z" /> +<glyph unicode="&#xf1b0;" horiz-adv-x="1664" d="M780 1064q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5zM438 581q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152q0 80 42 139.5t119 59.5 q76 0 141.5 -55.5t100.5 -134t35 -152.5zM832 608q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146q0 86 56 191.5t139.5 192.5t187.5 146t193 59zM1071 819 q-61 0 -105 39t-63 92.5t-19 113.5q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5zM1503 923q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5q-77 0 -119 59t-42 139q0 74 35 152.5 t100.5 134t141.5 55.5z" /> +<glyph unicode="&#xf1b1;" horiz-adv-x="768" d="M704 1008q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5z" /> +<glyph unicode="&#xf1b2;" horiz-adv-x="1792" d="M896 -93l640 349v636l-640 -233v-752zM832 772l698 254l-698 254l-698 -254zM1664 1024v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73z " /> +<glyph unicode="&#xf1b3;" horiz-adv-x="2304" d="M640 -96l384 192v314l-384 -164v-342zM576 358l404 173l-404 173l-404 -173zM1664 -96l384 192v314l-384 -164v-342zM1600 358l404 173l-404 173l-404 -173zM1152 651l384 165v266l-384 -164v-267zM1088 1030l441 189l-441 189l-441 -189zM2176 512v-416q0 -36 -19 -67 t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70 v-400l434 -186q36 -16 57 -48t21 -70z" /> +<glyph unicode="&#xf1b4;" horiz-adv-x="2048" d="M1848 1197h-511v-124h511v124zM1596 771q-90 0 -146 -52.5t-62 -142.5h408q-18 195 -200 195zM1612 186q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658 q0 -111 57.5 -171.5t166.5 -60.5zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5t45.5 113.5q0 144 -190 144h-260v-294zM0 1282h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204 q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611v1260z" /> +<glyph unicode="&#xf1b5;" d="M1248 1408q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960zM499 1041h-371v-787h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5 t-56.5 60.5t-79 29.5t-97 8.5zM477 723h-176v184h163q119 0 119 -90q0 -94 -106 -94zM486 388h-185v217h189q124 0 124 -113q0 -104 -128 -104zM1136 356q-68 0 -104 38t-36 107h411q1 10 1 30q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216q0 -135 79 -217 t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20zM1126 722q113 0 124 -122h-254q4 56 39 89t91 33zM964 988h319v-77h-319v77z" /> +<glyph unicode="&#xf1b6;" horiz-adv-x="1792" d="M1582 954q0 -101 -71.5 -172.5t-172.5 -71.5t-172.5 71.5t-71.5 172.5t71.5 172.5t172.5 71.5t172.5 -71.5t71.5 -172.5zM812 212q0 104 -73 177t-177 73q-27 0 -54 -6l104 -42q77 -31 109.5 -106.5t1.5 -151.5q-31 -77 -107 -109t-152 -1q-21 8 -62 24.5t-61 24.5 q32 -60 91 -96.5t130 -36.5q104 0 177 73t73 177zM1642 953q0 126 -89.5 215.5t-215.5 89.5q-127 0 -216.5 -89.5t-89.5 -215.5q0 -127 89.5 -216t216.5 -89q126 0 215.5 89t89.5 216zM1792 953q0 -189 -133.5 -322t-321.5 -133l-437 -319q-12 -129 -109 -218t-229 -89 q-121 0 -214 76t-118 192l-230 92v429l389 -157q79 48 173 48q13 0 35 -2l284 407q2 187 135.5 319t320.5 132q188 0 321.5 -133.5t133.5 -321.5z" /> +<glyph unicode="&#xf1b7;" d="M1242 889q0 80 -57 136.5t-137 56.5t-136.5 -57t-56.5 -136q0 -80 56.5 -136.5t136.5 -56.5t137 56.5t57 136.5zM632 301q0 -83 -58 -140.5t-140 -57.5q-56 0 -103 29t-72 77q52 -20 98 -40q60 -24 120 1.5t85 86.5q24 60 -1.5 120t-86.5 84l-82 33q22 5 42 5 q82 0 140 -57.5t58 -140.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v153l172 -69q20 -92 93.5 -152t168.5 -60q104 0 181 70t87 173l345 252q150 0 255.5 105.5t105.5 254.5q0 150 -105.5 255.5t-255.5 105.5 q-148 0 -253 -104.5t-107 -252.5l-225 -322q-9 1 -28 1q-75 0 -137 -37l-297 119v468q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5zM1289 887q0 -100 -71 -170.5t-171 -70.5t-170.5 70.5t-70.5 170.5t70.5 171t170.5 71q101 0 171.5 -70.5t70.5 -171.5z " /> +<glyph unicode="&#xf1b8;" horiz-adv-x="1792" d="M836 367l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5q-11 27 -14.5 55t4 65t12 55t21.5 64t19 53q78 -12 509 -28zM449 953l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188 l-140 86zM1680 436l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164l-230 367l211 362l7 -173q170 -16 283 -5t170 33zM895 1360q-47 -63 -265 -435l-317 187l-19 12l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5 t36 -39.5t32 -35zM1550 1053l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436l313 195zM1407 1279l142 83l-220 -373l-419 20l151 86q-34 89 -75 166t-75.5 123.5t-64.5 80t-47 46.5l-17 13l405 -1 q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190z" /> +<glyph unicode="&#xf1b9;" horiz-adv-x="2048" d="M480 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM516 768h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5zM1888 448q0 66 -47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47t113 47t47 113zM2048 544v-384 q0 -14 -9 -23t-23 -9h-96v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-1024v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h768q98 0 179 -63.5t104 -157.5 l105 -419h28q93 0 158.5 -65.5t65.5 -158.5z" /> +<glyph unicode="&#xf1ba;" horiz-adv-x="2048" d="M1824 640q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-96v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-1024v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5 t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h128q98 0 179 -63.5t104 -157.5l105 -419h28zM320 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM516 640h1016l-89 357q-2 8 -14 17.5t-21 9.5h-768q-9 0 -21 -9.5t-14 -17.5z M1728 160q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47z" /> +<glyph unicode="&#xf1bb;" d="M1504 64q0 -26 -19 -45t-45 -19h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45t19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384 q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45z" /> +<glyph unicode="&#xf1bc;" d="M1127 326q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5zM1223 541q0 40 -35 61q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64 q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5zM1331 789q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37 q159 0 309.5 -34t253.5 -95q21 -12 40 -12q29 0 50.5 20.5t21.5 51.5zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf1bd;" horiz-adv-x="1024" d="M1024 1233l-303 -582l24 -31h279v-415h-507l-44 -30l-142 -273l-30 -30h-301v303l303 583l-24 30h-279v415h507l44 30l142 273l30 30h301v-303z" /> +<glyph unicode="&#xf1be;" horiz-adv-x="2304" d="M784 164l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17l-14 -523l14 -241q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23zM1080 193l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6l-10 -579q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11 q11 0 20 9q9 7 9 20zM35 533l20 -128l-20 -126q-2 -9 -9 -9t-9 9l-17 126l17 128q2 9 9 9t9 -9zM121 612l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10l-23 202l23 207q0 9 9 9q8 0 10 -9zM401 159zM213 650l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11l-21 237l21 245 q2 12 12 12q11 0 11 -12zM307 657l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13l-21 244l21 252q0 13 13 13q12 0 14 -13zM401 639l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5l-20 246l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15zM784 164zM495 785 l21 -380l-21 -246q0 -7 -5 -12.5t-12 -5.5q-16 0 -18 18l-18 246l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5zM589 871l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19l-16 244l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5zM687 911l18 -506l-18 -242 q-2 -21 -22 -21q-19 0 -21 21l-16 242l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5zM1079 169v0v0zM881 915l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18l-14 239l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18zM980 896l14 -492l-14 -236q0 -11 -8 -19 t-19 -8t-19 8t-9 19l-12 236l12 492q1 12 9 20t19 8t18.5 -8t8.5 -20zM1192 404l-14 -231v0q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114l-6 117l12 636v3q2 15 12 24q9 7 20 7q8 0 15 -5q14 -8 16 -26zM2304 423q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22v899 q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201z" /> +<glyph unicode="&#xf1c0;" d="M768 768q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 0q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127 t443 -43zM768 384q237 0 443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128v170q119 -84 325 -127t443 -43zM768 1536q208 0 385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128v128q0 69 103 128t280 93.5t385 34.5z" /> +<glyph unicode="&#xf1c1;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M894 465q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4q52 85 107 197 q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM716 974q-15 -42 -2 -132q1 7 7 44q0 3 7 43q1 4 4 8 q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83zM1238 329q-24 24 -140 24q76 -28 124 -28q14 0 18 1q0 1 -2 3z" /> +<glyph unicode="&#xf1c2;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M233 768v-107h70l164 -661h159l128 485q7 20 10 46q2 16 2 24h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21 q-2 26 -7 46l-99 438h90v107h-300z" /> +<glyph unicode="&#xf1c3;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M429 106v-106h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107 h-290v-107h68l189 -272l-194 -283h-68z" /> +<glyph unicode="&#xf1c4;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M416 106v-106h327v106h-93v167h137q76 0 118 15q67 23 106.5 87t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92zM769 386h-119v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15z" /> +<glyph unicode="&#xf1c5;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M1280 320v-320h-1024v192l192 192l128 -128l384 384zM448 512q-80 0 -136 56t-56 136t56 136t136 56t136 -56t56 -136t-56 -136t-136 -56z" /> +<glyph unicode="&#xf1c6;" d="M640 1152v128h-128v-128h128zM768 1024v128h-128v-128h128zM640 896v128h-128v-128h128zM768 768v128h-128v-128h128zM1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400 v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536h1280zM781 593l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5q0 25 8 52q21 63 120 396v128h128v-128h79 q22 0 39 -13t23 -34zM640 128q53 0 90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45t37.5 -45t90.5 -19z" /> +<glyph unicode="&#xf1c7;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M620 686q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h131l166 167q16 15 35 7zM1037 -3q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5 q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5t23.5 -42.5q18 -15 40 -15zM826 145q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5t20 -44.5q20 -17 44 -17z" /> +<glyph unicode="&#xf1c8;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M768 768q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90v384q0 52 38 90t90 38h384zM1260 766q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9l-265 266v90l265 266q9 9 23 9q4 0 12 -2z" /> +<glyph unicode="&#xf1c9;" d="M1468 1156q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48zM1024 1400v-376h376q-10 29 -22 41l-313 313q-12 12 -41 22zM1408 -128v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536h1280z M480 768q8 11 21 12.5t24 -6.5l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5l-226 301q-14 19 0 38zM1282 467q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21t6.5 24l182 243 l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5zM662 6q-13 2 -20.5 13t-5.5 24l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5z" /> +<glyph unicode="&#xf1ca;" d="M1497 709v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406 q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14z" /> +<glyph unicode="&#xf1cb;" horiz-adv-x="1792" d="M216 367l603 -402v359l-334 223zM154 511l193 129l-193 129v-258zM973 -35l603 402l-269 180l-334 -223v-359zM896 458l272 182l-272 182l-272 -182zM485 733l334 223v359l-603 -402zM1445 640l193 -129v258zM1307 733l269 180l-603 402v-359zM1792 913v-546 q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64z" /> +<glyph unicode="&#xf1cc;" horiz-adv-x="2048" d="M1800 764q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94 q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55 t121.5 -21q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5 t-85 -189.5z" /> +<glyph unicode="&#xf1cd;" horiz-adv-x="1792" d="M896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM896 1408q-190 0 -361 -90l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90zM218 279l194 194 q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361t90 -361zM896 -128q190 0 361 90l-194 194q-82 -28 -167 -28t-167 28l-194 -194q171 -90 361 -90zM896 256q159 0 271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5t112.5 -271.5 t271.5 -112.5zM1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" /> +<glyph unicode="&#xf1ce;" horiz-adv-x="1792" d="M1760 640q0 -176 -68.5 -336t-184 -275.5t-275.5 -184t-336 -68.5t-336 68.5t-275.5 184t-184 275.5t-68.5 336q0 213 97 398.5t265 305.5t374 151v-228q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5 t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v228q206 -31 374 -151t265 -305.5t97 -398.5z" /> +<glyph unicode="&#xf1d0;" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" /> +<glyph unicode="&#xf1d1;" horiz-adv-x="1792" d="M874 -102v-66q-208 6 -385 109.5t-283 275.5l58 34q29 -49 73 -99l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13zM276 428l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385t98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212zM1528 251 l58 -34q-106 -172 -283 -275.5t-385 -109.5v66q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99zM1377 805l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162 q-67 77 -98 169l232 80q-14 42 -14 85t14 85l-233 80q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169zM874 1448v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98l-57 33 q106 172 282 275.5t385 109.5zM1705 640q0 -205 -98 -385l-57 33q27 52 49 112l-83 28q36 103 36 212q0 112 -35 212l82 28q-19 56 -49 112l57 33q98 -180 98 -385zM1585 1063l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13v66q209 -6 385 -109.5 t282 -275.5zM1748 640q0 173 -67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331t67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71 t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="&#xf1d2;" d="M582 228q0 -66 -93 -66q-107 0 -107 63q0 64 98 64q102 0 102 -61zM546 694q0 -85 -74 -85q-77 0 -77 84q0 90 77 90q36 0 55 -25.5t19 -63.5zM712 769v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85 q0 -53 41 -77v-3q-113 -37 -113 -139q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392 q0 -50 -3 -75zM1280 366v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24zM924 1072 q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf1d3;" horiz-adv-x="1792" d="M595 22q0 100 -165 100q-158 0 -158 -104q0 -101 172 -101q151 0 151 105zM536 777q0 61 -30 102t-89 41q-124 0 -124 -145q0 -135 124 -135q119 0 119 137zM805 1101v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58 q0 -31 22.5 -51.5t58 -32t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47 q98 0 218 47zM1123 220h-222q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134zM1724 442v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6v190h96v76q0 54 -6 89h227q-6 -41 -6 -165h171 v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33zM1148 1389q0 -58 -39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5z" /> +<glyph unicode="&#xf1d4;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf1d5;" horiz-adv-x="1280" d="M842 964q0 -80 -57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5t29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5 t136.5 -56.5t56.5 -136.5zM1223 953q0 -158 -78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153t-153 102t-186 38t-186 -38t-153 -102t-102 -153 t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5z" /> +<glyph unicode="&#xf1d6;" horiz-adv-x="1792" d="M270 730q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5t3.5 -5t2 -3.5 q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9t-98 20 t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20q-18 -41 -54.5 -74.5 t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100q0 275 252 466z" /> +<glyph unicode="&#xf1d7;" horiz-adv-x="2048" d="M580 1075q0 41 -25 66t-66 25q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5zM1323 568q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51zM1087 1075q0 41 -24.5 66t-65.5 25 q-43 0 -76 -25.5t-33 -65.5q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5zM1722 568q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51zM1456 965q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5 q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5zM2048 404q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109 q-150 -37 -218 -37q-169 0 -311 70.5t-223.5 191.5t-81.5 264t81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5z" /> +<glyph unicode="&#xf1d8;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11z" /> +<glyph unicode="&#xf1d9;" horiz-adv-x="1792" d="M1764 1525q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55q-3 39 32 59l1664 960q35 21 68 -2zM1422 26l221 1323l-1434 -827l336 -137 l863 639l-478 -797z" /> +<glyph unicode="&#xf1da;" d="M1536 640q0 -156 -61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5 t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298zM896 928v-448q0 -14 -9 -23 t-23 -9h-320q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf1db;" d="M768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103 t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf1dc;" horiz-adv-x="1792" d="M1682 -128q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5t45 -15 t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18q-15 10 -45 12t-53 2 t-41 14t-18 45q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22z" /> +<glyph unicode="&#xf1dd;" horiz-adv-x="1280" d="M1278 1347v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179 q-64 117 -64 259q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43z" /> +<glyph unicode="&#xf1de;" d="M352 128v-128h-352v128h352zM704 256q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM864 640v-128h-864v128h864zM224 1152v-128h-224v128h224zM1536 128v-128h-736v128h736zM576 1280q26 0 45 -19t19 -45v-256 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1216 768q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h256zM1536 640v-128h-224v128h224zM1536 1152v-128h-864v128h864z" /> +<glyph unicode="&#xf1e0;" d="M1216 512q133 0 226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5t93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5 t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86z" /> +<glyph unicode="&#xf1e1;" d="M1280 341q0 88 -62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5t62.5 -150.5 t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5t150.5 62.5t62.5 150.5zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf1e2;" horiz-adv-x="1792" d="M571 947q-10 25 -34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49t35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49zM1513 1303l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5 t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68zM1521 1359q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23t9 23q10 9 23 9t23 -9l90 -91 q10 -9 10 -22.5t-10 -22.5zM1751 1129q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5t10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23zM1792 1312q0 -14 -9 -23t-23 -9h-96q-14 0 -23 9t-9 23t9 23t23 9h96q14 0 23 -9t9 -23zM1600 1504v-96q0 -14 -9 -23t-23 -9 t-23 9t-9 23v96q0 14 9 23t23 9t23 -9t9 -23zM1751 1449l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5t10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23z" /> +<glyph unicode="&#xf1e3;" horiz-adv-x="1792" d="M609 720l287 208l287 -208l-109 -336h-355zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM1515 186q149 203 149 454v3l-102 -89l-240 224l63 323 l134 -12q-150 206 -389 282l53 -124l-287 -159l-287 159l53 124q-239 -76 -389 -282l135 12l62 -323l-240 -224l-102 89v-3q0 -251 149 -454l30 132l326 -40l139 -298l-116 -69q117 -39 240 -39t240 39l-116 69l139 298l326 40z" /> +<glyph unicode="&#xf1e4;" horiz-adv-x="1792" d="M448 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM256 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM832 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23 v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM640 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM66 768q-28 0 -47 19t-19 46v129h514v-129q0 -27 -19 -46t-46 -19h-383zM1216 224v-192q0 -14 -9 -23t-23 -9h-192 q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1024 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1600 224v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23 zM1408 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 1016v-13h-514v10q0 104 -382 102q-382 -1 -382 -102v-10h-514v13q0 17 8.5 43t34 64t65.5 75.5t110.5 76t160 67.5t224 47.5t293.5 18.5t293 -18.5t224 -47.5 t160.5 -67.5t110.5 -76t65.5 -75.5t34 -64t8.5 -43zM1792 608v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23zM1792 962v-129q0 -27 -19 -46t-46 -19h-384q-27 0 -46 19t-19 46v129h514z" /> +<glyph unicode="&#xf1e5;" horiz-adv-x="1792" d="M704 1216v-768q0 -26 -19 -45t-45 -19v-576q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v512l249 873q7 23 31 23h424zM1024 1216v-704h-256v704h256zM1792 320v-512q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v576q-26 0 -45 19t-19 45v768h424q24 0 31 -23z M736 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23zM1408 1504v-224h-352v224q0 14 9 23t23 9h288q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf1e6;" horiz-adv-x="1792" d="M1755 1083q37 -37 37 -90t-37 -91l-401 -400l150 -150l-160 -160q-163 -163 -389.5 -186.5t-411.5 100.5l-362 -362h-181v181l362 362q-124 185 -100.5 411.5t186.5 389.5l160 160l150 -150l400 401q38 37 91 37t90 -37t37 -90.5t-37 -90.5l-400 -401l234 -234l401 400 q38 37 91 37t90 -37z" /> +<glyph unicode="&#xf1e7;" horiz-adv-x="1792" d="M873 796q0 -83 -63.5 -142.5t-152.5 -59.5t-152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59t152.5 -59t63.5 -143zM1375 796q0 -83 -63 -142.5t-153 -59.5q-89 0 -152.5 59.5t-63.5 142.5q0 84 63.5 143t152.5 59q90 0 153 -59t63 -143zM1600 616v667q0 87 -32 123.5 t-111 36.5h-1112q-83 0 -112.5 -34t-29.5 -126v-673q43 -23 88.5 -40t81 -28t81 -18.5t71 -11t70 -4t58.5 -0.5t56.5 2t44.5 2q68 1 95 -27q6 -6 10 -9q26 -25 61 -51q7 91 118 87q5 0 36.5 -1.5t43 -2t45.5 -1t53 1t54.5 4.5t61 8.5t62 13.5t67 19.5t67.5 27t72 34.5z M1763 621q-121 -149 -372 -252q84 -285 -23 -465q-66 -113 -183 -148q-104 -32 -182 15q-86 51 -82 164l-1 326v1q-8 2 -24.5 6t-23.5 5l-1 -338q4 -114 -83 -164q-79 -47 -183 -15q-117 36 -182 150q-105 180 -22 463q-251 103 -372 252q-25 37 -4 63t60 -1q3 -2 11 -7 t11 -8v694q0 72 47 123t114 51h1257q67 0 114 -51t47 -123v-694l21 15q39 27 60 1t-4 -63z" /> +<glyph unicode="&#xf1e8;" horiz-adv-x="1792" d="M896 1102v-434h-145v434h145zM1294 1102v-434h-145v434h145zM1294 342l253 254v795h-1194v-1049h326v-217l217 217h398zM1692 1536v-1013l-434 -434h-326l-217 -217h-217v217h-398v1158l109 289h1483z" /> +<glyph unicode="&#xf1e9;" d="M773 217v-127q-1 -292 -6 -305q-12 -32 -51 -40q-54 -9 -181.5 38t-162.5 89q-13 15 -17 36q-1 12 4 26q4 10 34 47t181 216q1 0 60 70q15 19 39.5 24.5t49.5 -3.5q24 -10 37.5 -29t12.5 -42zM624 468q-3 -55 -52 -70l-120 -39q-275 -88 -292 -88q-35 2 -54 36 q-12 25 -17 75q-8 76 1 166.5t30 124.5t56 32q13 0 202 -77q70 -29 115 -47l84 -34q23 -9 35.5 -30.5t11.5 -48.5zM1450 171q-7 -54 -91.5 -161t-135.5 -127q-37 -14 -63 7q-14 10 -184 287l-47 77q-14 21 -11.5 46t19.5 46q35 43 83 26q1 -1 119 -40q203 -66 242 -79.5 t47 -20.5q28 -22 22 -61zM778 803q5 -102 -54 -122q-58 -17 -114 71l-378 598q-8 35 19 62q41 43 207.5 89.5t224.5 31.5q40 -10 49 -45q3 -18 22 -305.5t24 -379.5zM1440 695q3 -39 -26 -59q-15 -10 -329 -86q-67 -15 -91 -23l1 2q-23 -6 -46 4t-37 32q-30 47 0 87 q1 1 75 102q125 171 150 204t34 39q28 19 65 2q48 -23 123 -133.5t81 -167.5v-3z" /> +<glyph unicode="&#xf1ea;" horiz-adv-x="2048" d="M1024 1024h-384v-384h384v384zM1152 384v-128h-640v128h640zM1152 1152v-640h-640v640h640zM1792 384v-128h-512v128h512zM1792 640v-128h-512v128h512zM1792 896v-128h-512v128h512zM1792 1152v-128h-512v128h512zM256 192v960h-128v-960q0 -26 19 -45t45 -19t45 19 t19 45zM1920 192v1088h-1536v-1088q0 -33 -11 -64h1483q26 0 45 19t19 45zM2048 1408v-1216q0 -80 -56 -136t-136 -56h-1664q-80 0 -136 56t-56 136v1088h256v128h1792z" /> +<glyph unicode="&#xf1eb;" horiz-adv-x="2048" d="M1024 13q-20 0 -93 73.5t-73 93.5q0 32 62.5 54t103.5 22t103.5 -22t62.5 -54q0 -20 -73 -93.5t-93 -73.5zM1294 284q-2 0 -40 25t-101.5 50t-128.5 25t-128.5 -25t-101 -50t-40.5 -25q-18 0 -93.5 75t-75.5 93q0 13 10 23q78 77 196 121t233 44t233 -44t196 -121 q10 -10 10 -23q0 -18 -75.5 -93t-93.5 -75zM1567 556q-11 0 -23 8q-136 105 -252 154.5t-268 49.5q-85 0 -170.5 -22t-149 -53t-113.5 -62t-79 -53t-31 -22q-17 0 -92 75t-75 93q0 12 10 22q132 132 320 205t380 73t380 -73t320 -205q10 -10 10 -22q0 -18 -75 -93t-92 -75z M1838 827q-11 0 -22 9q-179 157 -371.5 236.5t-420.5 79.5t-420.5 -79.5t-371.5 -236.5q-11 -9 -22 -9q-17 0 -92.5 75t-75.5 93q0 13 10 23q187 186 445 288t527 102t527 -102t445 -288q10 -10 10 -23q0 -18 -75.5 -93t-92.5 -75z" /> +<glyph unicode="&#xf1ec;" horiz-adv-x="1792" d="M384 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM384 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5 t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 0q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5zM384 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1152 384q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM768 768q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1536 0v384q0 52 -38 90t-90 38t-90 -38t-38 -90v-384q0 -52 38 -90t90 -38t90 38t38 90zM1152 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1536 1088v256q0 26 -19 45t-45 19h-1280q-26 0 -45 -19t-19 -45v-256q0 -26 19 -45t45 -19h1280q26 0 45 19t19 45zM1536 768q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1664 1408v-1536q0 -52 -38 -90t-90 -38 h-1408q-52 0 -90 38t-38 90v1536q0 52 38 90t90 38h1408q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf1ed;" d="M1519 890q18 -84 -4 -204q-87 -444 -565 -444h-44q-25 0 -44 -16.5t-24 -42.5l-4 -19l-55 -346l-2 -15q-5 -26 -24.5 -42.5t-44.5 -16.5h-251q-21 0 -33 15t-9 36q9 56 26.5 168t26.5 168t27 167.5t27 167.5q5 37 43 37h131q133 -2 236 21q175 39 287 144q102 95 155 246 q24 70 35 133q1 6 2.5 7.5t3.5 1t6 -3.5q79 -59 98 -162zM1347 1172q0 -107 -46 -236q-80 -233 -302 -315q-113 -40 -252 -42q0 -1 -90 -1l-90 1q-100 0 -118 -96q-2 -8 -85 -530q-1 -10 -12 -10h-295q-22 0 -36.5 16.5t-11.5 38.5l232 1471q5 29 27.5 48t51.5 19h598 q34 0 97.5 -13t111.5 -32q107 -41 163.5 -123t56.5 -196z" /> +<glyph unicode="&#xf1ee;" horiz-adv-x="1792" d="M441 864q32 0 52 -26q266 -364 362 -774h-446q-127 441 -367 749q-12 16 -3 33.5t29 17.5h373zM1000 507q-49 -199 -125 -393q-79 310 -256 594q40 221 44 449q211 -340 337 -650zM1099 1216q235 -324 384.5 -698.5t184.5 -773.5h-451q-41 665 -553 1472h435zM1792 640 q0 -424 -101 -812q-67 560 -359 1083q-25 301 -106 584q-4 16 5.5 28.5t25.5 12.5h359q21 0 38.5 -13t22.5 -33q115 -409 115 -850z" /> +<glyph unicode="&#xf1f0;" horiz-adv-x="2304" d="M1975 546h-138q14 37 66 179l3 9q4 10 10 26t9 26l12 -55zM531 611l-58 295q-11 54 -75 54h-268l-2 -13q311 -79 403 -336zM710 960l-162 -438l-17 89q-26 70 -85 129.5t-131 88.5l135 -510h175l261 641h-176zM849 318h166l104 642h-166zM1617 944q-69 27 -149 27 q-123 0 -201 -59t-79 -153q-1 -102 145 -174q48 -23 67 -41t19 -39q0 -30 -30 -46t-69 -16q-86 0 -156 33l-22 11l-23 -144q74 -34 185 -34q130 -1 208.5 59t80.5 160q0 106 -140 174q-49 25 -71 42t-22 38q0 22 24.5 38.5t70.5 16.5q70 1 124 -24l15 -8zM2042 960h-128 q-65 0 -87 -54l-246 -588h174l35 96h212q5 -22 20 -96h154zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf1f1;" horiz-adv-x="2304" d="M671 603h-13q-47 0 -47 -32q0 -22 20 -22q17 0 28 15t12 39zM1066 639h62v3q1 4 0.5 6.5t-1 7t-2 8t-4.5 6.5t-7.5 5t-11.5 2q-28 0 -36 -38zM1606 603h-12q-48 0 -48 -32q0 -22 20 -22q17 0 28 15t12 39zM1925 629q0 41 -30 41q-19 0 -31 -20t-12 -51q0 -42 28 -42 q20 0 32.5 20t12.5 52zM480 770h87l-44 -262h-56l32 201l-71 -201h-39l-4 200l-34 -200h-53l44 262h81l2 -163zM733 663q0 -6 -4 -42q-16 -101 -17 -113h-47l1 22q-20 -26 -58 -26q-23 0 -37.5 16t-14.5 42q0 39 26 60.5t73 21.5q14 0 23 -1q0 3 0.5 5.5t1 4.5t0.5 3 q0 20 -36 20q-29 0 -59 -10q0 4 7 48q38 11 67 11q74 0 74 -62zM889 721l-8 -49q-22 3 -41 3q-27 0 -27 -17q0 -8 4.5 -12t21.5 -11q40 -19 40 -60q0 -72 -87 -71q-34 0 -58 6q0 2 7 49q29 -8 51 -8q32 0 32 19q0 7 -4.5 11.5t-21.5 12.5q-43 20 -43 59q0 72 84 72 q30 0 50 -4zM977 721h28l-7 -52h-29q-2 -17 -6.5 -40.5t-7 -38.5t-2.5 -18q0 -16 19 -16q8 0 16 2l-8 -47q-21 -7 -40 -7q-43 0 -45 47q0 12 8 56q3 20 25 146h55zM1180 648q0 -23 -7 -52h-111q-3 -22 10 -33t38 -11q30 0 58 14l-9 -54q-30 -8 -57 -8q-95 0 -95 95 q0 55 27.5 90.5t69.5 35.5q35 0 55.5 -21t20.5 -56zM1319 722q-13 -23 -22 -62q-22 2 -31 -24t-25 -128h-56l3 14q22 130 29 199h51l-3 -33q14 21 25.5 29.5t28.5 4.5zM1506 763l-9 -57q-28 14 -50 14q-31 0 -51 -27.5t-20 -70.5q0 -30 13.5 -47t38.5 -17q21 0 48 13 l-10 -59q-28 -8 -50 -8q-45 0 -71.5 30.5t-26.5 82.5q0 70 35.5 114.5t91.5 44.5q26 0 61 -13zM1668 663q0 -18 -4 -42q-13 -79 -17 -113h-46l1 22q-20 -26 -59 -26q-23 0 -37 16t-14 42q0 39 25.5 60.5t72.5 21.5q15 0 23 -1q2 7 2 13q0 20 -36 20q-29 0 -59 -10q0 4 8 48 q38 11 67 11q73 0 73 -62zM1809 722q-14 -24 -21 -62q-23 2 -31.5 -23t-25.5 -129h-56l3 14q19 104 29 199h52q0 -11 -4 -33q15 21 26.5 29.5t27.5 4.5zM1950 770h56l-43 -262h-53l3 19q-23 -23 -52 -23q-31 0 -49.5 24t-18.5 64q0 53 27.5 92t64.5 39q31 0 53 -29z M2061 640q0 148 -72.5 273t-198 198t-273.5 73q-181 0 -328 -110q127 -116 171 -284h-50q-44 150 -158 253q-114 -103 -158 -253h-50q44 168 171 284q-147 110 -328 110q-148 0 -273.5 -73t-198 -198t-72.5 -273t72.5 -273t198 -198t273.5 -73q181 0 328 110 q-120 111 -165 264h50q46 -138 152 -233q106 95 152 233h50q-45 -153 -165 -264q147 -110 328 -110q148 0 273.5 73t198 198t72.5 273zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf1f2;" horiz-adv-x="2304" d="M313 759q0 -51 -36 -84q-29 -26 -89 -26h-17v220h17q61 0 89 -27q36 -31 36 -83zM2089 824q0 -52 -64 -52h-19v101h20q63 0 63 -49zM380 759q0 74 -50 120.5t-129 46.5h-95v-333h95q74 0 119 38q60 51 60 128zM410 593h65v333h-65v-333zM730 694q0 40 -20.5 62t-75.5 42 q-29 10 -39.5 19t-10.5 23q0 16 13.5 26.5t34.5 10.5q29 0 53 -27l34 44q-41 37 -98 37q-44 0 -74 -27.5t-30 -67.5q0 -35 18 -55.5t64 -36.5q37 -13 45 -19q19 -12 19 -34q0 -20 -14 -33.5t-36 -13.5q-48 0 -71 44l-42 -40q44 -64 115 -64q51 0 83 30.5t32 79.5zM1008 604 v77q-37 -37 -78 -37q-49 0 -80.5 32.5t-31.5 82.5q0 48 31.5 81.5t77.5 33.5q43 0 81 -38v77q-40 20 -80 20q-74 0 -125.5 -50.5t-51.5 -123.5t51 -123.5t125 -50.5q42 0 81 19zM2240 0v527q-65 -40 -144.5 -84t-237.5 -117t-329.5 -137.5t-417.5 -134.5t-504 -118h1569 q26 0 45 19t19 45zM1389 757q0 75 -53 128t-128 53t-128 -53t-53 -128t53 -128t128 -53t128 53t53 128zM1541 584l144 342h-71l-90 -224l-89 224h-71l142 -342h35zM1714 593h184v56h-119v90h115v56h-115v74h119v57h-184v-333zM2105 593h80l-105 140q76 16 76 94q0 47 -31 73 t-87 26h-97v-333h65v133h9zM2304 1274v-1268q0 -56 -38.5 -95t-93.5 -39h-2040q-55 0 -93.5 39t-38.5 95v1268q0 56 38.5 95t93.5 39h2040q55 0 93.5 -39t38.5 -95z" /> +<glyph unicode="&#xf1f3;" horiz-adv-x="2304" d="M119 854h89l-45 108zM740 328l74 79l-70 79h-163v-49h142v-55h-142v-54h159zM898 406l99 -110v217zM1186 453q0 33 -40 33h-84v-69h83q41 0 41 36zM1475 457q0 29 -42 29h-82v-61h81q43 0 43 32zM1197 923q0 29 -42 29h-82v-60h81q43 0 43 31zM1656 854h89l-44 108z M699 1009v-271h-66v212l-94 -212h-57l-94 212v-212h-132l-25 60h-135l-25 -60h-70l116 271h96l110 -257v257h106l85 -184l77 184h108zM1255 453q0 -20 -5.5 -35t-14 -25t-22.5 -16.5t-26 -10t-31.5 -4.5t-31.5 -1t-32.5 0.5t-29.5 0.5v-91h-126l-80 90l-83 -90h-256v271h260 l80 -89l82 89h207q109 0 109 -89zM964 794v-56h-217v271h217v-57h-152v-49h148v-55h-148v-54h152zM2304 235v-229q0 -55 -38.5 -94.5t-93.5 -39.5h-2040q-55 0 -93.5 39.5t-38.5 94.5v678h111l25 61h55l25 -61h218v46l19 -46h113l20 47v-47h541v99l10 1q10 0 10 -14v-86h279 v23q23 -12 55 -18t52.5 -6.5t63 0.5t51.5 1l25 61h56l25 -61h227v58l34 -58h182v378h-180v-44l-25 44h-185v-44l-23 44h-249q-69 0 -109 -22v22h-172v-22q-24 22 -73 22h-628l-43 -97l-43 97h-198v-44l-22 44h-169l-78 -179v391q0 55 38.5 94.5t93.5 39.5h2040 q55 0 93.5 -39.5t38.5 -94.5v-678h-120q-51 0 -81 -22v22h-177q-55 0 -78 -22v22h-316v-22q-31 22 -87 22h-209v-22q-23 22 -91 22h-234l-54 -58l-50 58h-349v-378h343l55 59l52 -59h211v89h21q59 0 90 13v-102h174v99h8q8 0 10 -2t2 -10v-87h529q57 0 88 24v-24h168 q60 0 95 17zM1546 469q0 -23 -12 -43t-34 -29q25 -9 34 -26t9 -46v-54h-65v45q0 33 -12 43.5t-46 10.5h-69v-99h-65v271h154q48 0 77 -15t29 -58zM1269 936q0 -24 -12.5 -44t-33.5 -29q26 -9 34.5 -25.5t8.5 -46.5v-53h-65q0 9 0.5 26.5t0 25t-3 18.5t-8.5 16t-17.5 8.5 t-29.5 3.5h-70v-98h-64v271l153 -1q49 0 78 -14.5t29 -57.5zM1798 327v-56h-216v271h216v-56h-151v-49h148v-55h-148v-54zM1372 1009v-271h-66v271h66zM2065 357q0 -86 -102 -86h-126v58h126q34 0 34 25q0 16 -17 21t-41.5 5t-49.5 3.5t-42 22.5t-17 55q0 39 26 60t66 21 h130v-57h-119q-36 0 -36 -25q0 -16 17.5 -20.5t42 -4t49 -2.5t42 -21.5t17.5 -54.5zM2304 407v-101q-24 -35 -88 -35h-125v58h125q33 0 33 25q0 13 -12.5 19t-31 5.5t-40 2t-40 8t-31 24t-12.5 48.5q0 39 26.5 60t66.5 21h129v-57h-118q-36 0 -36 -25q0 -20 29 -22t68.5 -5 t56.5 -26zM2139 1008v-270h-92l-122 203v-203h-132l-26 60h-134l-25 -60h-75q-129 0 -129 133q0 138 133 138h63v-59q-7 0 -28 1t-28.5 0.5t-23 -2t-21.5 -6.5t-14.5 -13.5t-11.5 -23t-3 -33.5q0 -38 13.5 -58t49.5 -20h29l92 213h97l109 -256v256h99l114 -188v188h66z" /> +<glyph unicode="&#xf1f4;" horiz-adv-x="2304" d="M745 630q0 -37 -25.5 -61.5t-62.5 -24.5q-29 0 -46.5 16t-17.5 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM1530 779q0 -42 -22 -57t-66 -15l-32 -1l17 107q2 11 13 11h18q22 0 35 -2t25 -12.5t12 -30.5zM1881 630q0 -36 -25.5 -61t-61.5 -25q-29 0 -47 16 t-18 44q0 37 25 62.5t62 25.5q28 0 46.5 -16.5t18.5 -45.5zM513 801q0 59 -38.5 85.5t-100.5 26.5h-160q-19 0 -21 -19l-65 -408q-1 -6 3 -11t10 -5h76q20 0 22 19l18 110q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM822 489l41 261q1 6 -3 11t-10 5h-76 q-14 0 -17 -33q-27 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q28 0 58 12t48 32q-4 -12 -4 -21q0 -16 13 -16h69q19 0 22 19zM1269 752q0 5 -4 9.5t-9 4.5h-77q-11 0 -18 -10l-106 -156l-44 150q-5 16 -22 16h-75q-5 0 -9 -4.5t-4 -9.5q0 -2 19.5 -59 t42 -123t23.5 -70q-82 -112 -82 -120q0 -13 13 -13h77q11 0 18 10l255 368q2 2 2 7zM1649 801q0 59 -38.5 85.5t-100.5 26.5h-159q-20 0 -22 -19l-65 -408q-1 -6 3 -11t10 -5h82q12 0 16 13l18 116q1 8 7 13t15 6.5t17 1.5t19 -1t14 -1q86 0 135 48.5t49 134.5zM1958 489 l41 261q1 6 -3 11t-10 5h-76q-14 0 -17 -33q-26 40 -95 40q-72 0 -122.5 -54t-50.5 -127q0 -59 34.5 -94t92.5 -35q29 0 59 12t47 32q0 -1 -2 -9t-2 -12q0 -16 13 -16h69q19 0 22 19zM2176 898v1q0 14 -13 14h-74q-11 0 -13 -11l-65 -416l-1 -2q0 -5 4 -9.5t10 -4.5h66 q19 0 21 19zM392 764q-5 -35 -26 -46t-60 -11l-33 -1l17 107q2 11 13 11h19q40 0 58 -11.5t12 -48.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf1f5;" horiz-adv-x="2304" d="M1597 633q0 -69 -21 -106q-19 -35 -52 -35q-23 0 -41 9v224q29 30 57 30q57 0 57 -122zM2035 669h-110q6 98 56 98q51 0 54 -98zM476 534q0 59 -33 91.5t-101 57.5q-36 13 -52 24t-16 25q0 26 38 26q58 0 124 -33l18 112q-67 32 -149 32q-77 0 -123 -38q-48 -39 -48 -109 q0 -58 32.5 -90.5t99.5 -56.5q39 -14 54.5 -25.5t15.5 -27.5q0 -31 -48 -31q-29 0 -70 12.5t-72 30.5l-18 -113q72 -41 168 -41q81 0 129 37q51 41 51 117zM771 749l19 111h-96v135l-129 -21l-18 -114l-46 -8l-17 -103h62v-219q0 -84 44 -120q38 -30 111 -30q32 0 79 11v118 q-32 -7 -44 -7q-42 0 -42 50v197h77zM1087 724v139q-15 3 -28 3q-32 0 -55.5 -16t-33.5 -46l-10 56h-131v-471h150v306q26 31 82 31q16 0 26 -2zM1124 389h150v471h-150v-471zM1746 638q0 122 -45 179q-40 52 -111 52q-64 0 -117 -56l-8 47h-132v-645l150 25v151 q36 -11 68 -11q83 0 134 56q61 65 61 202zM1278 986q0 33 -23 56t-56 23t-56 -23t-23 -56t23 -56.5t56 -23.5t56 23.5t23 56.5zM2176 629q0 113 -48 176q-50 64 -144 64q-96 0 -151.5 -66t-55.5 -180q0 -128 63 -188q55 -55 161 -55q101 0 160 40l-16 103q-57 -31 -128 -31 q-43 0 -63 19q-23 19 -28 66h248q2 14 2 52zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf1f6;" horiz-adv-x="2048" d="M1558 684q61 -356 298 -556q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5zM1024 -176q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5zM2026 1424q8 -10 7.5 -23.5t-10.5 -22.5 l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5 l418 363q10 8 23.5 7t21.5 -11z" /> +<glyph unicode="&#xf1f7;" horiz-adv-x="2048" d="M1040 -160q0 16 -16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16zM503 315l877 760q-42 88 -132.5 146.5t-223.5 58.5q-93 0 -169.5 -31.5t-121.5 -80.5t-69 -103t-24 -105q0 -384 -137 -645zM1856 128 q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-180.5 74.5t-75.5 180.5l149 129h757q-166 187 -227 459l111 97q61 -356 298 -556zM1942 1520l84 -96q8 -10 7.5 -23.5t-10.5 -22.5l-1872 -1622q-10 -8 -23.5 -7t-21.5 11l-84 96q-8 10 -7.5 23.5t10.5 21.5l186 161 q-19 32 -19 66q50 42 91 88t85 119.5t74.5 158.5t50 206t19.5 260q0 152 117 282.5t307 158.5q-8 19 -8 39q0 40 28 68t68 28t68 -28t28 -68q0 -20 -8 -39q124 -18 219 -82.5t148 -157.5l418 363q10 8 23.5 7t21.5 -11z" /> +<glyph unicode="&#xf1f8;" horiz-adv-x="1408" d="M512 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM768 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1024 160v704q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-704 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM1408 1120v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h309l70 167 q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf1f9;" d="M1150 462v-109q0 -50 -36.5 -89t-94 -60.5t-118 -32.5t-117.5 -11q-205 0 -342.5 139t-137.5 346q0 203 136 339t339 136q34 0 75.5 -4.5t93 -18t92.5 -34t69 -56.5t28 -81v-109q0 -16 -16 -16h-118q-16 0 -16 16v70q0 43 -65.5 67.5t-137.5 24.5q-140 0 -228.5 -91.5 t-88.5 -237.5q0 -151 91.5 -249.5t233.5 -98.5q68 0 138 24t70 66v70q0 7 4.5 11.5t10.5 4.5h119q6 0 11 -4.5t5 -11.5zM768 1280q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf1fa;" d="M972 761q0 108 -53.5 169t-147.5 61q-63 0 -124 -30.5t-110 -84.5t-79.5 -137t-30.5 -180q0 -112 53.5 -173t150.5 -61q96 0 176 66.5t122.5 166t42.5 203.5zM1536 640q0 -111 -37 -197t-98.5 -135t-131.5 -74.5t-145 -27.5q-6 0 -15.5 -0.5t-16.5 -0.5q-95 0 -142 53 q-28 33 -33 83q-52 -66 -131.5 -110t-173.5 -44q-161 0 -249.5 95.5t-88.5 269.5q0 157 66 290t179 210.5t246 77.5q87 0 155 -35.5t106 -99.5l2 19l11 56q1 6 5.5 12t9.5 6h118q5 0 13 -11q5 -5 3 -16l-120 -614q-5 -24 -5 -48q0 -39 12.5 -52t44.5 -13q28 1 57 5.5t73 24 t77 50t57 89.5t24 137q0 292 -174 466t-466 174q-130 0 -248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51q228 0 405 144q11 9 24 8t21 -12l41 -49q8 -12 7 -24q-2 -13 -12 -22q-102 -83 -227.5 -128t-258.5 -45q-156 0 -298 61 t-245 164t-164 245t-61 298t61 298t164 245t245 164t298 61q344 0 556 -212t212 -556z" /> +<glyph unicode="&#xf1fb;" horiz-adv-x="1792" d="M1698 1442q94 -94 94 -226.5t-94 -225.5l-225 -223l104 -104q10 -10 10 -23t-10 -23l-210 -210q-10 -10 -23 -10t-23 10l-105 105l-603 -603q-37 -37 -90 -37h-203l-256 -128l-64 64l128 256v203q0 53 37 90l603 603l-105 105q-10 10 -10 23t10 23l210 210q10 10 23 10 t23 -10l104 -104l223 225q93 94 225.5 94t226.5 -94zM512 64l576 576l-192 192l-576 -576v-192h192z" /> +<glyph unicode="&#xf1fc;" horiz-adv-x="1792" d="M1615 1536q70 0 122.5 -46.5t52.5 -116.5q0 -63 -45 -151q-332 -629 -465 -752q-97 -91 -218 -91q-126 0 -216.5 92.5t-90.5 219.5q0 128 92 212l638 579q59 54 130 54zM706 502q39 -76 106.5 -130t150.5 -76l1 -71q4 -213 -129.5 -347t-348.5 -134q-123 0 -218 46.5 t-152.5 127.5t-86.5 183t-29 220q7 -5 41 -30t62 -44.5t59 -36.5t46 -17q41 0 55 37q25 66 57.5 112.5t69.5 76t88 47.5t103 25.5t125 10.5z" /> +<glyph unicode="&#xf1fd;" horiz-adv-x="1792" d="M1792 128v-384h-1792v384q45 0 85 14t59 27.5t47 37.5q30 27 51.5 38t56.5 11t55.5 -11t52.5 -38q29 -25 47 -38t58 -27t86 -14q45 0 85 14.5t58 27t48 37.5q21 19 32.5 27t31 15t43.5 7q35 0 56.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14t85 14t59 27.5t47 37.5 q30 27 51.5 38t56.5 11q34 0 55.5 -11t51.5 -38q28 -24 47 -37.5t59 -27.5t85 -14zM1792 448v-192q-35 0 -55.5 11t-52.5 38q-29 25 -47 38t-58 27t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-22 -19 -33 -27t-31 -15t-44 -7q-35 0 -56.5 11t-51.5 38q-29 25 -47 38t-58 27 t-86 14q-45 0 -85 -14.5t-58 -27t-48 -37.5q-21 -19 -32.5 -27t-31 -15t-43.5 -7q-35 0 -56.5 11t-51.5 38q-28 24 -47 37.5t-59 27.5t-85 14q-46 0 -86 -14t-58 -27t-47 -38q-30 -27 -51.5 -38t-56.5 -11v192q0 80 56 136t136 56h64v448h256v-448h256v448h256v-448h256v448 h256v-448h64q80 0 136 -56t56 -136zM512 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1024 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51 t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150zM1536 1312q0 -77 -36 -118.5t-92 -41.5q-53 0 -90.5 37.5t-37.5 90.5q0 29 9.5 51t23.5 34t31 28t31 31.5t23.5 44.5t9.5 67q38 0 83 -74t45 -150z" /> +<glyph unicode="&#xf1fe;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1664 1024l256 -896h-1664v576l448 576l576 -576z" /> +<glyph unicode="&#xf200;" horiz-adv-x="1792" d="M768 646l546 -546q-106 -108 -247.5 -168t-298.5 -60q-209 0 -385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103v-762zM955 640h773q0 -157 -60 -298.5t-168 -247.5zM1664 768h-768v768q209 0 385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf201;" horiz-adv-x="2048" d="M2048 0v-128h-2048v1536h128v-1408h1920zM1920 1248v-435q0 -21 -19.5 -29.5t-35.5 7.5l-121 121l-633 -633q-10 -10 -23 -10t-23 10l-233 233l-416 -416l-192 192l585 585q10 10 23 10t23 -10l233 -233l464 464l-121 121q-16 16 -7.5 35.5t29.5 19.5h435q14 0 23 -9 t9 -23z" /> +<glyph unicode="&#xf202;" horiz-adv-x="1792" d="M1292 832q0 -6 10 -41q10 -29 25 -49.5t41 -34t44 -20t55 -16.5q325 -91 325 -332q0 -146 -105.5 -242.5t-254.5 -96.5q-59 0 -111.5 18.5t-91.5 45.5t-77 74.5t-63 87.5t-53.5 103.5t-43.5 103t-39.5 106.5t-35.5 95q-32 81 -61.5 133.5t-73.5 96.5t-104 64t-142 20 q-96 0 -183 -55.5t-138 -144.5t-51 -185q0 -160 106.5 -279.5t263.5 -119.5q177 0 258 95q56 63 83 116l84 -152q-15 -34 -44 -70l1 -1q-131 -152 -388 -152q-147 0 -269.5 79t-190.5 207.5t-68 274.5q0 105 43.5 206t116 176.5t172 121.5t204.5 46q87 0 159 -19t123.5 -50 t95 -80t72.5 -99t58.5 -117t50.5 -124.5t50 -130.5t55 -127q96 -200 233 -200q81 0 138.5 48.5t57.5 128.5q0 42 -19 72t-50.5 46t-72.5 31.5t-84.5 27t-87.5 34t-81 52t-65 82t-39 122.5q-3 16 -3 33q0 110 87.5 192t198.5 78q78 -3 120.5 -14.5t90.5 -53.5h-1 q12 -11 23 -24.5t26 -36t19 -27.5l-129 -99q-26 49 -54 70v1q-23 21 -97 21q-49 0 -84 -33t-35 -83z" /> +<glyph unicode="&#xf203;" d="M1432 484q0 173 -234 239q-35 10 -53 16.5t-38 25t-29 46.5q0 2 -2 8.5t-3 12t-1 7.5q0 36 24.5 59.5t60.5 23.5q54 0 71 -15h-1q20 -15 39 -51l93 71q-39 54 -49 64q-33 29 -67.5 39t-85.5 10q-80 0 -142 -57.5t-62 -137.5q0 -7 2 -23q16 -96 64.5 -140t148.5 -73 q29 -8 49 -15.5t45 -21.5t38.5 -34.5t13.5 -46.5v-5q1 -58 -40.5 -93t-100.5 -35q-97 0 -167 144q-23 47 -51.5 121.5t-48 125.5t-54 110.5t-74 95.5t-103.5 60.5t-147 24.5q-101 0 -192 -56t-144 -148t-50 -192v-1q4 -108 50.5 -199t133.5 -147.5t196 -56.5q186 0 279 110 q20 27 31 51l-60 109q-42 -80 -99 -116t-146 -36q-115 0 -191 87t-76 204q0 105 82 189t186 84q112 0 170 -53.5t104 -172.5q8 -21 25.5 -68.5t28.5 -76.5t31.5 -74.5t38.5 -74t45.5 -62.5t55.5 -53.5t66 -33t80 -13.5q107 0 183 69.5t76 174.5zM1536 1120v-960 q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf204;" horiz-adv-x="2048" d="M1152 640q0 104 -40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM1920 640q0 104 -40.5 198.5 t-109.5 163.5t-163.5 109.5t-198.5 40.5h-386q119 -90 188.5 -224t69.5 -288t-69.5 -288t-188.5 -224h386q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5zM2048 640q0 -130 -51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5 t-136.5 204t-51 248.5t51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5z" /> +<glyph unicode="&#xf205;" horiz-adv-x="2048" d="M0 640q0 130 51 248.5t136.5 204t204 136.5t248.5 51h768q130 0 248.5 -51t204 -136.5t136.5 -204t51 -248.5t-51 -248.5t-136.5 -204t-204 -136.5t-248.5 -51h-768q-130 0 -248.5 51t-204 136.5t-136.5 204t-51 248.5zM1408 128q104 0 198.5 40.5t163.5 109.5 t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5t-198.5 -40.5t-163.5 -109.5t-109.5 -163.5t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5z" /> +<glyph unicode="&#xf206;" horiz-adv-x="2304" d="M762 384h-314q-40 0 -57.5 35t6.5 67l188 251q-65 31 -137 31q-132 0 -226 -94t-94 -226t94 -226t226 -94q115 0 203 72.5t111 183.5zM576 512h186q-18 85 -75 148zM1056 512l288 384h-480l-99 -132q105 -103 126 -252h165zM2176 448q0 132 -94 226t-226 94 q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94t226 94t94 226zM2304 448q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 97 39.5 183.5t109.5 149.5l-65 98l-353 -469 q-18 -26 -51 -26h-197q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5t-131.5 316.5t131.5 316.5t316.5 131.5q114 0 215 -55l137 183h-224q-26 0 -45 19t-19 45t19 45t45 19h384v-128h435l-85 128h-222q-26 0 -45 19t-19 45t19 45t45 19h256q33 0 53 -28l267 -400 q91 44 192 44q185 0 316.5 -131.5t131.5 -316.5z" /> +<glyph unicode="&#xf207;" d="M384 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 320q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1362 716l-72 384q-5 23 -22.5 37.5t-40.5 14.5 h-918q-23 0 -40.5 -14.5t-22.5 -37.5l-72 -384q-5 -30 14 -53t49 -23h1062q30 0 49 23t14 53zM1136 1328q0 20 -14 34t-34 14h-640q-20 0 -34 -14t-14 -34t14 -34t34 -14h640q20 0 34 14t14 34zM1536 603v-603h-128v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5 t-37.5 90.5v128h-768v-128q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5v128h-128v603q0 112 25 223l103 454q9 78 97.5 137t230 89t312.5 30t312.5 -30t230 -89t97.5 -137l105 -454q23 -102 23 -223z" /> +<glyph unicode="&#xf208;" horiz-adv-x="2048" d="M1463 704q0 -35 -25 -60.5t-61 -25.5h-702q-36 0 -61 25.5t-25 60.5t25 60.5t61 25.5h702q36 0 61 -25.5t25 -60.5zM1677 704q0 86 -23 170h-982q-36 0 -61 25t-25 60q0 36 25 61t61 25h908q-88 143 -235 227t-320 84q-177 0 -327.5 -87.5t-238 -237.5t-87.5 -327 q0 -86 23 -170h982q36 0 61 -25t25 -60q0 -36 -25 -61t-61 -25h-908q88 -143 235.5 -227t320.5 -84q132 0 253 51.5t208 139t139 208t52 253.5zM2048 959q0 -35 -25 -60t-61 -25h-131q17 -85 17 -170q0 -167 -65.5 -319.5t-175.5 -263t-262.5 -176t-319.5 -65.5 q-246 0 -448.5 133t-301.5 350h-189q-36 0 -61 25t-25 61q0 35 25 60t61 25h132q-17 85 -17 170q0 167 65.5 319.5t175.5 263t262.5 176t320.5 65.5q245 0 447.5 -133t301.5 -350h188q36 0 61 -25t25 -61z" /> +<glyph unicode="&#xf209;" horiz-adv-x="1280" d="M953 1158l-114 -328l117 -21q165 451 165 518q0 56 -38 56q-57 0 -130 -225zM654 471l33 -88q37 42 71 67l-33 5.5t-38.5 7t-32.5 8.5zM362 1367q0 -98 159 -521q18 10 49 10q15 0 75 -5l-121 351q-75 220 -123 220q-19 0 -29 -17.5t-10 -37.5zM283 608q0 -36 51.5 -119 t117.5 -153t100 -70q14 0 25.5 13t11.5 27q0 24 -32 102q-13 32 -32 72t-47.5 89t-61.5 81t-62 32q-20 0 -45.5 -27t-25.5 -47zM125 273q0 -41 25 -104q59 -145 183.5 -227t281.5 -82q227 0 382 170q152 169 152 427q0 43 -1 67t-11.5 62t-30.5 56q-56 49 -211.5 75.5 t-270.5 26.5q-37 0 -49 -11q-12 -5 -12 -35q0 -34 21.5 -60t55.5 -40t77.5 -23.5t87.5 -11.5t85 -4t70 0h23q24 0 40 -19q15 -19 19 -55q-28 -28 -96 -54q-61 -22 -93 -46q-64 -46 -108.5 -114t-44.5 -137q0 -31 18.5 -88.5t18.5 -87.5l-3 -12q-4 -12 -4 -14 q-137 10 -146 216q-8 -2 -41 -2q2 -7 2 -21q0 -53 -40.5 -89.5t-94.5 -36.5q-82 0 -166.5 78t-84.5 159q0 34 33 67q52 -64 60 -76q77 -104 133 -104q12 0 26.5 8.5t14.5 20.5q0 34 -87.5 145t-116.5 111q-43 0 -70 -44.5t-27 -90.5zM11 264q0 101 42.5 163t136.5 88 q-28 74 -28 104q0 62 61 123t122 61q29 0 70 -15q-163 462 -163 567q0 80 41 130.5t119 50.5q131 0 325 -581q6 -17 8 -23q6 16 29 79.5t43.5 118.5t54 127.5t64.5 123t70.5 86.5t76.5 36q71 0 112 -49t41 -122q0 -108 -159 -550q61 -15 100.5 -46t58.5 -78t26 -93.5 t7 -110.5q0 -150 -47 -280t-132 -225t-211 -150t-278 -55q-111 0 -223 42q-149 57 -258 191.5t-109 286.5z" /> +<glyph unicode="&#xf20a;" horiz-adv-x="2048" d="M785 528h207q-14 -158 -98.5 -248.5t-214.5 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-203q-5 64 -35.5 99t-81.5 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t40 -51.5t66 -18q95 0 109 139zM1497 528h206 q-14 -158 -98 -248.5t-214 -90.5q-162 0 -254.5 116t-92.5 316q0 194 93 311.5t233 117.5q148 0 232 -87t97 -247h-204q-4 64 -35 99t-81 35q-57 0 -88.5 -60.5t-31.5 -177.5q0 -48 5 -84t18 -69.5t39.5 -51.5t65.5 -18q49 0 76.5 38t33.5 101zM1856 647q0 207 -15.5 307 t-60.5 161q-6 8 -13.5 14t-21.5 15t-16 11q-86 63 -697 63q-625 0 -710 -63q-5 -4 -17.5 -11.5t-21 -14t-14.5 -14.5q-45 -60 -60 -159.5t-15 -308.5q0 -208 15 -307.5t60 -160.5q6 -8 15 -15t20.5 -14t17.5 -12q44 -33 239.5 -49t470.5 -16q610 0 697 65q5 4 17 11t20.5 14 t13.5 16q46 60 61 159t15 309zM2048 1408v-1536h-2048v1536h2048z" /> +<glyph unicode="&#xf20b;" d="M992 912v-496q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v496q0 112 -80 192t-192 80h-272v-1152q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v1344q0 14 9 23t23 9h464q135 0 249 -66.5t180.5 -180.5t66.5 -249zM1376 1376v-880q0 -135 -66.5 -249t-180.5 -180.5 t-249 -66.5h-464q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-768h272q112 0 192 80t80 192v880q0 14 9 23t23 9h160q14 0 23 -9t9 -23z" /> +<glyph unicode="&#xf20c;" d="M1311 694v-114q0 -24 -13.5 -38t-37.5 -14h-202q-24 0 -38 14t-14 38v114q0 24 14 38t38 14h202q24 0 37.5 -14t13.5 -38zM821 464v250q0 53 -32.5 85.5t-85.5 32.5h-133q-68 0 -96 -52q-28 52 -96 52h-130q-53 0 -85.5 -32.5t-32.5 -85.5v-250q0 -22 21 -22h55 q22 0 22 22v230q0 24 13.5 38t38.5 14h94q24 0 38 -14t14 -38v-230q0 -22 21 -22h54q22 0 22 22v230q0 24 14 38t38 14h97q24 0 37.5 -14t13.5 -38v-230q0 -22 22 -22h55q21 0 21 22zM1410 560v154q0 53 -33 85.5t-86 32.5h-264q-53 0 -86 -32.5t-33 -85.5v-410 q0 -21 22 -21h55q21 0 21 21v180q31 -42 94 -42h191q53 0 86 32.5t33 85.5zM1536 1176v-1072q0 -96 -68 -164t-164 -68h-1072q-96 0 -164 68t-68 164v1072q0 96 68 164t164 68h1072q96 0 164 -68t68 -164z" /> +<glyph unicode="&#xf20d;" d="M915 450h-294l147 551zM1001 128h311l-324 1024h-440l-324 -1024h311l383 314zM1536 1120v-960q0 -118 -85 -203t-203 -85h-960q-118 0 -203 85t-85 203v960q0 118 85 203t203 85h960q118 0 203 -85t85 -203z" /> +<glyph unicode="&#xf20e;" horiz-adv-x="2048" d="M2048 641q0 -21 -13 -36.5t-33 -19.5l-205 -356q3 -9 3 -18q0 -20 -12.5 -35.5t-32.5 -19.5l-193 -337q3 -8 3 -16q0 -23 -16.5 -40t-40.5 -17q-25 0 -41 18h-400q-17 -20 -43 -20t-43 20h-399q-17 -20 -43 -20q-23 0 -40 16.5t-17 40.5q0 8 4 20l-193 335 q-20 4 -32.5 19.5t-12.5 35.5q0 9 3 18l-206 356q-20 5 -32.5 20.5t-12.5 35.5q0 21 13.5 36.5t33.5 19.5l199 344q0 1 -0.5 3t-0.5 3q0 36 34 51l209 363q-4 10 -4 18q0 24 17 40.5t40 16.5q26 0 44 -21h396q16 21 43 21t43 -21h398q18 21 44 21q23 0 40 -16.5t17 -40.5 q0 -6 -4 -18l207 -358q23 -1 39 -17.5t16 -38.5q0 -13 -7 -27l187 -324q19 -4 31.5 -19.5t12.5 -35.5zM1063 -158h389l-342 354h-143l-342 -354h360q18 16 39 16t39 -16zM112 654q1 -4 1 -13q0 -10 -2 -15l208 -360q2 0 4.5 -1t5.5 -2.5l5 -2.5l188 199v347l-187 194 q-13 -8 -29 -10zM986 1438h-388l190 -200l554 200h-280q-16 -16 -38 -16t-38 16zM1689 226q1 6 5 11l-64 68l-17 -79h76zM1583 226l22 105l-252 266l-296 -307l63 -64h463zM1495 -142l16 28l65 310h-427l333 -343q8 4 13 5zM578 -158h5l342 354h-373v-335l4 -6q14 -5 22 -13 zM552 226h402l64 66l-309 321l-157 -166v-221zM359 226h163v189l-168 -177q4 -8 5 -12zM358 1051q0 -1 0.5 -2t0.5 -2q0 -16 -8 -29l171 -177v269zM552 1121v-311l153 -157l297 314l-223 236zM556 1425l-4 -8v-264l205 74l-191 201q-6 -2 -10 -3zM1447 1438h-16l-621 -224 l213 -225zM1023 946l-297 -315l311 -319l296 307zM688 634l-136 141v-284zM1038 270l-42 -44h85zM1374 618l238 -251l132 624l-3 5l-1 1zM1718 1018q-8 13 -8 29v2l-216 376q-5 1 -13 5l-437 -463l310 -327zM522 1142v223l-163 -282zM522 196h-163l163 -283v283zM1607 196 l-48 -227l130 227h-82zM1729 266l207 361q-2 10 -2 14q0 1 3 16l-171 296l-129 -612l77 -82q5 3 15 7z" /> +<glyph unicode="&#xf210;" d="M0 856q0 131 91.5 226.5t222.5 95.5h742l352 358v-1470q0 -132 -91.5 -227t-222.5 -95h-780q-131 0 -222.5 95t-91.5 227v790zM1232 102l-176 180v425q0 46 -32 79t-78 33h-484q-46 0 -78 -33t-32 -79v-492q0 -46 32.5 -79.5t77.5 -33.5h770z" /> +<glyph unicode="&#xf211;" d="M934 1386q-317 -121 -556 -362.5t-358 -560.5q-20 89 -20 176q0 208 102.5 384.5t278.5 279t384 102.5q82 0 169 -19zM1203 1267q93 -65 164 -155q-389 -113 -674.5 -400.5t-396.5 -676.5q-93 72 -155 162q112 386 395 671t667 399zM470 -67q115 356 379.5 622t619.5 384 q40 -92 54 -195q-292 -120 -516 -345t-343 -518q-103 14 -194 52zM1536 -125q-193 50 -367 115q-135 -84 -290 -107q109 205 274 370.5t369 275.5q-21 -152 -101 -284q65 -175 115 -370z" /> +<glyph unicode="&#xf212;" horiz-adv-x="2048" d="M1893 1144l155 -1272q-131 0 -257 57q-200 91 -393 91q-226 0 -374 -148q-148 148 -374 148q-193 0 -393 -91q-128 -57 -252 -57h-5l155 1272q224 127 482 127q233 0 387 -106q154 106 387 106q258 0 482 -127zM1398 157q129 0 232 -28.5t260 -93.5l-124 1021 q-171 78 -368 78q-224 0 -374 -141q-150 141 -374 141q-197 0 -368 -78l-124 -1021q105 43 165.5 65t148.5 39.5t178 17.5q202 0 374 -108q172 108 374 108zM1438 191l-55 907q-211 -4 -359 -155q-152 155 -374 155q-176 0 -336 -66l-114 -941q124 51 228.5 76t221.5 25 q209 0 374 -102q172 107 374 102z" /> +<glyph unicode="&#xf213;" horiz-adv-x="2048" d="M1500 165v733q0 21 -15 36t-35 15h-93q-20 0 -35 -15t-15 -36v-733q0 -20 15 -35t35 -15h93q20 0 35 15t15 35zM1216 165v531q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-531q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM924 165v429q0 20 -15 35t-35 15h-101 q-20 0 -35 -15t-15 -35v-429q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM632 165v362q0 20 -15 35t-35 15h-101q-20 0 -35 -15t-15 -35v-362q0 -20 15 -35t35 -15h101q20 0 35 15t15 35zM2048 311q0 -166 -118 -284t-284 -118h-1244q-166 0 -284 118t-118 284 q0 116 63 214.5t168 148.5q-10 34 -10 73q0 113 80.5 193.5t193.5 80.5q102 0 180 -67q45 183 194 300t338 117q149 0 275 -73.5t199.5 -199.5t73.5 -275q0 -66 -14 -122q135 -33 221 -142.5t86 -247.5z" /> +<glyph unicode="&#xf214;" d="M0 1536h1536v-1392l-776 -338l-760 338v1392zM1436 209v926h-1336v-926l661 -294zM1436 1235v201h-1336v-201h1336zM181 937v-115h-37v115h37zM181 789v-115h-37v115h37zM181 641v-115h-37v115h37zM181 493v-115h-37v115h37zM181 345v-115h-37v115h37zM207 202l15 34 l105 -47l-15 -33zM343 142l15 34l105 -46l-15 -34zM478 82l15 34l105 -46l-15 -34zM614 23l15 33l104 -46l-15 -34zM797 10l105 46l15 -33l-105 -47zM932 70l105 46l15 -34l-105 -46zM1068 130l105 46l15 -34l-105 -46zM1203 189l105 47l15 -34l-105 -46zM259 1389v-36h-114 v36h114zM421 1389v-36h-115v36h115zM583 1389v-36h-115v36h115zM744 1389v-36h-114v36h114zM906 1389v-36h-114v36h114zM1068 1389v-36h-115v36h115zM1230 1389v-36h-115v36h115zM1391 1389v-36h-114v36h114zM181 1049v-79h-37v115h115v-36h-78zM421 1085v-36h-115v36h115z M583 1085v-36h-115v36h115zM744 1085v-36h-114v36h114zM906 1085v-36h-114v36h114zM1068 1085v-36h-115v36h115zM1230 1085v-36h-115v36h115zM1355 970v79h-78v36h115v-115h-37zM1355 822v115h37v-115h-37zM1355 674v115h37v-115h-37zM1355 526v115h37v-115h-37zM1355 378 v115h37v-115h-37zM1355 230v115h37v-115h-37zM760 265q-129 0 -221 91.5t-92 221.5q0 129 92 221t221 92q130 0 221.5 -92t91.5 -221q0 -130 -91.5 -221.5t-221.5 -91.5zM595 646q0 -36 19.5 -56.5t49.5 -25t64 -7t64 -2t49.5 -9t19.5 -30.5q0 -49 -112 -49q-97 0 -123 51 h-3l-31 -63q67 -42 162 -42q29 0 56.5 5t55.5 16t45.5 33t17.5 53q0 46 -27.5 69.5t-67.5 27t-79.5 3t-67 5t-27.5 25.5q0 21 20.5 33t40.5 15t41 3q34 0 70.5 -11t51.5 -34h3l30 58q-3 1 -21 8.5t-22.5 9t-19.5 7t-22 7t-20 4.5t-24 4t-23 1q-29 0 -56.5 -5t-54 -16.5 t-43 -34t-16.5 -53.5z" /> +<glyph unicode="&#xf215;" horiz-adv-x="2048" d="M863 504q0 112 -79.5 191.5t-191.5 79.5t-191 -79.5t-79 -191.5t79 -191t191 -79t191.5 79t79.5 191zM1726 505q0 112 -79 191t-191 79t-191.5 -79t-79.5 -191q0 -113 79.5 -192t191.5 -79t191 79.5t79 191.5zM2048 1314v-1348q0 -44 -31.5 -75.5t-76.5 -31.5h-1832 q-45 0 -76.5 31.5t-31.5 75.5v1348q0 44 31.5 75.5t76.5 31.5h431q44 0 76 -31.5t32 -75.5v-161h754v161q0 44 32 75.5t76 31.5h431q45 0 76.5 -31.5t31.5 -75.5z" /> +<glyph unicode="&#xf216;" horiz-adv-x="2048" d="M1430 953zM1690 749q148 0 253 -98.5t105 -244.5q0 -157 -109 -261.5t-267 -104.5q-85 0 -162 27.5t-138 73.5t-118 106t-109 126.5t-103.5 132.5t-108.5 126t-117 106t-136 73.5t-159 27.5q-154 0 -251.5 -91.5t-97.5 -244.5q0 -157 104 -250t263 -93q100 0 208 37.5 t193 98.5q5 4 21 18.5t30 24t22 9.5q14 0 24.5 -10.5t10.5 -24.5q0 -24 -60 -77q-101 -88 -234.5 -142t-260.5 -54q-133 0 -245.5 58t-180 165t-67.5 241q0 205 141.5 341t347.5 136q120 0 226.5 -43.5t185.5 -113t151.5 -153t139 -167.5t133.5 -153.5t149.5 -113 t172.5 -43.5q102 0 168.5 61.5t66.5 162.5q0 95 -64.5 159t-159.5 64q-30 0 -81.5 -18.5t-68.5 -18.5q-20 0 -35.5 15t-15.5 35q0 18 8.5 57t8.5 59q0 159 -107.5 263t-266.5 104q-58 0 -111.5 -18.5t-84 -40.5t-55.5 -40.5t-33 -18.5q-15 0 -25.5 10.5t-10.5 25.5 q0 19 25 46q59 67 147 103.5t182 36.5q191 0 318 -125.5t127 -315.5q0 -37 -4 -66q57 15 115 15z" /> +<glyph unicode="&#xf217;" horiz-adv-x="1664" d="M1216 832q0 26 -19 45t-45 19h-128v128q0 26 -19 45t-45 19t-45 -19t-19 -45v-128h-128q-26 0 -45 -19t-19 -45t19 -45t45 -19h128v-128q0 -26 19 -45t45 -19t45 19t19 45v128h128q26 0 45 19t19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf218;" horiz-adv-x="1664" d="M1280 832q0 26 -19 45t-45 19t-45 -19l-147 -146v293q0 26 -19 45t-45 19t-45 -19t-19 -45v-293l-147 146q-19 19 -45 19t-45 -19t-19 -45t19 -45l256 -256q19 -19 45 -19t45 19l256 256q19 19 19 45zM640 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5 t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1536 0q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1664 1088v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920 q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45t19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf219;" horiz-adv-x="2048" d="M212 768l623 -665l-300 665h-323zM1024 -4l349 772h-698zM538 896l204 384h-262l-288 -384h346zM1213 103l623 665h-323zM683 896h682l-204 384h-274zM1510 896h346l-288 384h-262zM1651 1382l384 -512q14 -18 13 -41.5t-17 -40.5l-960 -1024q-18 -20 -47 -20t-47 20 l-960 1024q-16 17 -17 40.5t13 41.5l384 512q18 26 51 26h1152q33 0 51 -26z" /> +<glyph unicode="&#xf21a;" horiz-adv-x="2048" d="M1811 -19q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83q19 19 45 19t45 -19l83 -83l83 83 q19 19 45 19t45 -19l83 -83zM237 19q-19 -19 -45 -19t-45 19l-128 128l90 90l83 -82l83 82q19 19 45 19t45 -19l83 -82l64 64v293l-210 314q-17 26 -7 56.5t40 40.5l177 58v299h128v128h256v128h256v-128h256v-128h128v-299l177 -58q30 -10 40 -40.5t-7 -56.5l-210 -314 v-293l19 18q19 19 45 19t45 -19l83 -82l83 82q19 19 45 19t45 -19l128 -128l-90 -90l-83 83l-83 -83q-18 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83l-83 -83 q-19 -19 -45 -19t-45 19l-83 83l-83 -83q-19 -19 -45 -19t-45 19l-83 83zM640 1152v-128l384 128l384 -128v128h-128v128h-512v-128h-128z" /> +<glyph unicode="&#xf21b;" d="M576 0l96 448l-96 128l-128 64zM832 0l128 640l-128 -64l-96 -128zM992 1010q-2 4 -4 6q-10 8 -96 8q-70 0 -167 -19q-7 -2 -21 -2t-21 2q-97 19 -167 19q-86 0 -96 -8q-2 -2 -4 -6q2 -18 4 -27q2 -3 7.5 -6.5t7.5 -10.5q2 -4 7.5 -20.5t7 -20.5t7.5 -17t8.5 -17t9 -14 t12 -13.5t14 -9.5t17.5 -8t20.5 -4t24.5 -2q36 0 59 12.5t32.5 30t14.5 34.5t11.5 29.5t17.5 12.5h12q11 0 17.5 -12.5t11.5 -29.5t14.5 -34.5t32.5 -30t59 -12.5q13 0 24.5 2t20.5 4t17.5 8t14 9.5t12 13.5t9 14t8.5 17t7.5 17t7 20.5t7.5 20.5q2 7 7.5 10.5t7.5 6.5 q2 9 4 27zM1408 131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190q0 61 4.5 118t19 125.5t37.5 123.5t63.5 103.5t93.5 74.5l-90 220h214q-22 64 -22 128q0 12 2 32q-194 40 -194 96q0 57 210 99q17 62 51.5 134t70.5 114q32 37 76 37q30 0 84 -31t84 -31t84 31 t84 31q44 0 76 -37q36 -42 70.5 -114t51.5 -134q210 -42 210 -99q0 -56 -194 -96q7 -81 -20 -160h214l-82 -225q63 -33 107.5 -96.5t65.5 -143.5t29 -151.5t8 -148.5z" /> +<glyph unicode="&#xf21c;" horiz-adv-x="2304" d="M2301 500q12 -103 -22 -198.5t-99 -163.5t-158.5 -106t-196.5 -31q-161 11 -279.5 125t-134.5 274q-12 111 27.5 210.5t118.5 170.5l-71 107q-96 -80 -151 -194t-55 -244q0 -27 -18.5 -46.5t-45.5 -19.5h-256h-69q-23 -164 -149 -274t-294 -110q-185 0 -316.5 131.5 t-131.5 316.5t131.5 316.5t316.5 131.5q76 0 152 -27l24 45q-123 110 -304 110h-64q-26 0 -45 19t-19 45t19 45t45 19h128q78 0 145 -13.5t116.5 -38.5t71.5 -39.5t51 -36.5h512h115l-85 128h-222q-30 0 -49 22.5t-14 52.5q4 23 23 38t43 15h253q33 0 53 -28l70 -105 l114 114q19 19 46 19h101q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-179l115 -172q131 63 275 36q143 -26 244 -134.5t118 -253.5zM448 128q115 0 203 72.5t111 183.5h-314q-35 0 -55 31q-18 32 -1 63l147 277q-47 13 -91 13q-132 0 -226 -94t-94 -226t94 -226 t226 -94zM1856 128q132 0 226 94t94 226t-94 226t-226 94q-60 0 -121 -24l174 -260q15 -23 10 -49t-27 -40q-15 -11 -36 -11q-35 0 -53 29l-174 260q-93 -95 -93 -225q0 -132 94 -226t226 -94z" /> +<glyph unicode="&#xf21d;" d="M1408 0q0 -63 -61.5 -113.5t-164 -81t-225 -46t-253.5 -15.5t-253.5 15.5t-225 46t-164 81t-61.5 113.5q0 49 33 88.5t91 66.5t118 44.5t131 29.5q26 5 48 -10.5t26 -41.5q5 -26 -10.5 -48t-41.5 -26q-58 -10 -106 -23.5t-76.5 -25.5t-48.5 -23.5t-27.5 -19.5t-8.5 -12 q3 -11 27 -26.5t73 -33t114 -32.5t160.5 -25t201.5 -10t201.5 10t160.5 25t114 33t73 33.5t27 27.5q-1 4 -8.5 11t-27.5 19t-48.5 23.5t-76.5 25t-106 23.5q-26 4 -41.5 26t-10.5 48q4 26 26 41.5t48 10.5q71 -12 131 -29.5t118 -44.5t91 -66.5t33 -88.5zM1024 896v-384 q0 -26 -19 -45t-45 -19h-64v-384q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v384h-64q-26 0 -45 19t-19 45v384q0 53 37.5 90.5t90.5 37.5h384q53 0 90.5 -37.5t37.5 -90.5zM928 1280q0 -93 -65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5z" /> +<glyph unicode="&#xf21e;" horiz-adv-x="1792" d="M1280 512h305q-5 -6 -10 -10.5t-9 -7.5l-3 -4l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-5 2 -21 20h369q22 0 39.5 13.5t22.5 34.5l70 281l190 -667q6 -20 23 -33t39 -13q21 0 38 13t23 33l146 485l56 -112q18 -35 57 -35zM1792 940q0 -145 -103 -300h-369l-111 221 q-8 17 -25.5 27t-36.5 8q-45 -5 -56 -46l-129 -430l-196 686q-6 20 -23.5 33t-39.5 13t-39 -13.5t-22 -34.5l-116 -464h-423q-103 155 -103 300q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124 t127 -344z" /> +<glyph unicode="&#xf221;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292 q11 134 80.5 249t182 188t245.5 88q170 19 319 -54t236 -212t87 -306zM128 960q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" /> +<glyph unicode="&#xf222;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-382 -383q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5 q203 0 359 -126l382 382h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf223;" horiz-adv-x="1280" d="M830 1220q145 -72 233.5 -210.5t88.5 -305.5q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5 t-147.5 384.5q0 167 88.5 305.5t233.5 210.5q-165 96 -228 273q-6 16 3.5 29.5t26.5 13.5h69q21 0 29 -20q44 -106 140 -171t214 -65t214 65t140 171q8 20 37 20h61q17 0 26.5 -13.5t3.5 -29.5q-63 -177 -228 -273zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf224;" d="M1024 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-149 16 -270.5 103t-186.5 223.5t-53 291.5q16 204 160 353.5t347 172.5q118 14 228 -19t198 -103l255 254h-134q-14 0 -23 9t-9 23v64zM576 256q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf225;" horiz-adv-x="1792" d="M1280 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q126 -158 126 -359q0 -221 -147.5 -384.5t-364.5 -187.5v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64 q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-217 24 -364.5 187.5t-147.5 384.5q0 201 126 359l-52 53l-101 -111q-9 -10 -22 -10.5t-23 7.5l-48 44q-10 8 -10.5 21.5t8.5 23.5l105 115l-111 112v-134q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9 t-9 23v288q0 26 19 45t45 19h288q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-133l106 -107l86 94q9 10 22 10.5t23 -7.5l48 -44q10 -8 10.5 -21.5t-8.5 -23.5l-90 -99l57 -56q158 126 359 126t359 -126l255 254h-134q-14 0 -23 9t-9 23v64zM832 256q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf226;" horiz-adv-x="1792" d="M1790 1007q12 -155 -52.5 -292t-186 -224t-271.5 -103v-260h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-512v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23 t23 9h224v260q-150 16 -271.5 103t-186 224t-52.5 292q17 206 164.5 356.5t352.5 169.5q206 21 377 -94q171 115 377 94q205 -19 352.5 -169.5t164.5 -356.5zM896 647q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM576 512q115 0 218 57q-154 165 -154 391 q0 224 154 391q-103 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5zM1152 128v260q-137 15 -256 94q-119 -79 -256 -94v-260h512zM1216 512q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5q-115 0 -218 -57q154 -167 154 -391 q0 -226 -154 -391q103 -57 218 -57z" /> +<glyph unicode="&#xf227;" horiz-adv-x="1920" d="M1536 1120q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-31 -182 -166 -312t-318 -156q-210 -29 -384.5 80t-241.5 300q-117 6 -221 57.5t-177.5 133t-113.5 192.5t-32 230 q9 135 78 252t182 191.5t248 89.5q118 14 227.5 -19t198.5 -103l255 254h-134q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q59 -74 93 -169q182 -9 328 -124l255 254h-134q-14 0 -23 9 t-9 23v64zM1024 704q0 20 -4 58q-162 -25 -271 -150t-109 -292q0 -20 4 -58q162 25 271 150t109 292zM128 704q0 -168 111 -294t276 -149q-3 29 -3 59q0 210 135 369.5t338 196.5q-53 120 -163.5 193t-245.5 73q-185 0 -316.5 -131.5t-131.5 -316.5zM1088 -128 q185 0 316.5 131.5t131.5 316.5q0 168 -111 294t-276 149q3 -29 3 -59q0 -210 -135 -369.5t-338 -196.5q53 -120 163.5 -193t245.5 -73z" /> +<glyph unicode="&#xf228;" horiz-adv-x="2048" d="M1664 1504q0 14 9 23t23 9h288q26 0 45 -19t19 -45v-288q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v134l-254 -255q76 -95 107.5 -214t9.5 -247q-32 -180 -164.5 -310t-313.5 -157q-223 -34 -409 90q-117 -78 -256 -93v-132h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23 t-23 -9h-96v-96q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v96h-96q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96v132q-155 17 -279.5 109.5t-187 237.5t-39.5 307q25 187 159.5 322.5t320.5 164.5q224 34 410 -90q146 97 320 97q201 0 359 -126l255 254h-134q-14 0 -23 9 t-9 23v64zM896 391q128 131 128 313t-128 313q-128 -131 -128 -313t128 -313zM128 704q0 -185 131.5 -316.5t316.5 -131.5q117 0 218 57q-154 167 -154 391t154 391q-101 57 -218 57q-185 0 -316.5 -131.5t-131.5 -316.5zM1216 256q185 0 316.5 131.5t131.5 316.5 t-131.5 316.5t-316.5 131.5q-117 0 -218 -57q154 -167 154 -391t-154 -391q101 -57 218 -57z" /> +<glyph unicode="&#xf229;" d="M1472 1408q26 0 45 -19t19 -45v-416q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v262l-213 -214l140 -140q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-140 141l-78 -79q126 -156 126 -359q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5 t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123t223.5 45.5q203 0 359 -126l78 78l-172 172q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l172 -172l213 213h-261q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h416zM576 0q185 0 316.5 131.5t131.5 316.5t-131.5 316.5 t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf22a;" horiz-adv-x="1280" d="M640 892q217 -24 364.5 -187.5t147.5 -384.5q0 -167 -87 -306t-236 -212t-319 -54q-133 15 -245.5 88t-182 188t-80.5 249q-12 155 52.5 292t186 224t271.5 103v132h-160q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h160v165l-92 -92q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22 t9 23l202 201q19 19 45 19t45 -19l202 -201q9 -10 9 -23t-9 -22l-46 -46q-9 -9 -22 -9t-23 9l-92 92v-165h160q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-160v-132zM576 -128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5 t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf22b;" horiz-adv-x="2048" d="M1901 621q19 -19 19 -45t-19 -45l-294 -294q-9 -10 -22.5 -10t-22.5 10l-45 45q-10 9 -10 22.5t10 22.5l185 185h-294v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-132q-24 -217 -187.5 -364.5t-384.5 -147.5q-167 0 -306 87t-212 236t-54 319q15 133 88 245.5 t188 182t249 80.5q155 12 292 -52.5t224 -186t103 -271.5h132v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224h294l-185 185q-10 9 -10 22.5t10 22.5l45 45q9 10 22.5 10t22.5 -10zM576 128q185 0 316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5 t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf22c;" horiz-adv-x="1280" d="M1152 960q0 -221 -147.5 -384.5t-364.5 -187.5v-612q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v612q-217 24 -364.5 187.5t-147.5 384.5q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM576 512q185 0 316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5z" /> +<glyph unicode="&#xf22d;" horiz-adv-x="1280" d="M1024 576q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5t131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5zM1152 576q0 -117 -45.5 -223.5t-123 -184t-184 -123t-223.5 -45.5t-223.5 45.5t-184 123t-123 184t-45.5 223.5t45.5 223.5t123 184t184 123 t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5z" /> +<glyph unicode="&#xf22e;" horiz-adv-x="1792" /> +<glyph unicode="&#xf22f;" horiz-adv-x="1792" /> +<glyph unicode="&#xf230;" d="M1451 1408q35 0 60 -25t25 -60v-1366q0 -35 -25 -60t-60 -25h-391v595h199l30 232h-229v148q0 56 23.5 84t91.5 28l122 1v207q-63 9 -178 9q-136 0 -217.5 -80t-81.5 -226v-171h-200v-232h200v-595h-735q-35 0 -60 25t-25 60v1366q0 35 25 60t60 25h1366z" /> +<glyph unicode="&#xf231;" horiz-adv-x="1280" d="M0 939q0 108 37.5 203.5t103.5 166.5t152 123t185 78t202 26q158 0 294 -66.5t221 -193.5t85 -287q0 -96 -19 -188t-60 -177t-100 -149.5t-145 -103t-189 -38.5q-68 0 -135 32t-96 88q-10 -39 -28 -112.5t-23.5 -95t-20.5 -71t-26 -71t-32 -62.5t-46 -77.5t-62 -86.5 l-14 -5l-9 10q-15 157 -15 188q0 92 21.5 206.5t66.5 287.5t52 203q-32 65 -32 169q0 83 52 156t132 73q61 0 95 -40.5t34 -102.5q0 -66 -44 -191t-44 -187q0 -63 45 -104.5t109 -41.5q55 0 102 25t78.5 68t56 95t38 110.5t20 111t6.5 99.5q0 173 -109.5 269.5t-285.5 96.5 q-200 0 -334 -129.5t-134 -328.5q0 -44 12.5 -85t27 -65t27 -45.5t12.5 -30.5q0 -28 -15 -73t-37 -45q-2 0 -17 3q-51 15 -90.5 56t-61 94.5t-32.5 108t-11 106.5z" /> +<glyph unicode="&#xf232;" d="M985 562q13 0 97.5 -44t89.5 -53q2 -5 2 -15q0 -33 -17 -76q-16 -39 -71 -65.5t-102 -26.5q-57 0 -190 62q-98 45 -170 118t-148 185q-72 107 -71 194v8q3 91 74 158q24 22 52 22q6 0 18 -1.5t19 -1.5q19 0 26.5 -6.5t15.5 -27.5q8 -20 33 -88t25 -75q0 -21 -34.5 -57.5 t-34.5 -46.5q0 -7 5 -15q34 -73 102 -137q56 -53 151 -101q12 -7 22 -7q15 0 54 48.5t52 48.5zM782 32q127 0 243.5 50t200.5 134t134 200.5t50 243.5t-50 243.5t-134 200.5t-200.5 134t-243.5 50t-243.5 -50t-200.5 -134t-134 -200.5t-50 -243.5q0 -203 120 -368l-79 -233 l242 77q158 -104 345 -104zM782 1414q153 0 292.5 -60t240.5 -161t161 -240.5t60 -292.5t-60 -292.5t-161 -240.5t-240.5 -161t-292.5 -60q-195 0 -365 94l-417 -134l136 405q-108 178 -108 389q0 153 60 292.5t161 240.5t240.5 161t292.5 60z" /> +<glyph unicode="&#xf233;" horiz-adv-x="1792" d="M128 128h1024v128h-1024v-128zM128 640h1024v128h-1024v-128zM1696 192q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM128 1152h1024v128h-1024v-128zM1696 704q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1696 1216 q0 40 -28 68t-68 28t-68 -28t-28 -68t28 -68t68 -28t68 28t28 68zM1792 384v-384h-1792v384h1792zM1792 896v-384h-1792v384h1792zM1792 1408v-384h-1792v384h1792z" /> +<glyph unicode="&#xf234;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1664 512h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-352q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5v352h-352q-13 0 -22.5 9.5t-9.5 22.5v192q0 13 9.5 22.5t22.5 9.5h352v352q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-352zM928 288q0 -52 38 -90t90 -38h256v-238q-68 -50 -171 -50h-874q-121 0 -194 69t-73 190q0 53 3.5 103.5t14 109t26.5 108.5 t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q79 -61 154.5 -91.5t164.5 -30.5t164.5 30.5t154.5 91.5q20 17 39 17q132 0 217 -96h-223q-52 0 -90 -38t-38 -90v-192z" /> +<glyph unicode="&#xf235;" horiz-adv-x="2048" d="M704 640q-159 0 -271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5zM1781 320l249 -249q9 -9 9 -23q0 -13 -9 -22l-136 -136q-9 -9 -22 -9q-14 0 -23 9l-249 249l-249 -249q-9 -9 -23 -9q-13 0 -22 9l-136 136 q-9 9 -9 22q0 14 9 23l249 249l-249 249q-9 9 -9 23q0 13 9 22l136 136q9 9 22 9q14 0 23 -9l249 -249l249 249q9 9 23 9q13 0 22 -9l136 -136q9 -9 9 -22q0 -14 -9 -23zM1283 320l-181 -181q-37 -37 -37 -91q0 -53 37 -90l83 -83q-21 -3 -44 -3h-874q-121 0 -194 69 t-73 190q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q19 0 39 -17q154 -122 319 -122t319 122q20 17 39 17q28 0 57 -6q-28 -27 -41 -50t-13 -56q0 -54 37 -91z" /> +<glyph unicode="&#xf236;" horiz-adv-x="2048" d="M256 512h1728q26 0 45 -19t19 -45v-448h-256v256h-1536v-256h-256v1216q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-704zM832 832q0 106 -75 181t-181 75t-181 -75t-75 -181t75 -181t181 -75t181 75t75 181zM2048 576v64q0 159 -112.5 271.5t-271.5 112.5h-704 q-26 0 -45 -19t-19 -45v-384h1152z" /> +<glyph unicode="&#xf237;" d="M1536 1536l-192 -448h192v-192h-274l-55 -128h329v-192h-411l-357 -832l-357 832h-411v192h329l-55 128h-274v192h192l-192 448h256l323 -768h378l323 768h256zM768 320l108 256h-216z" /> +<glyph unicode="&#xf238;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM768 192q80 0 136 56t56 136t-56 136t-136 56 t-136 -56t-56 -136t56 -136t136 -56zM1344 768v512h-1152v-512h1152z" /> +<glyph unicode="&#xf239;" d="M1088 1536q185 0 316.5 -93.5t131.5 -226.5v-896q0 -130 -125.5 -222t-305.5 -97l213 -202q16 -15 8 -35t-30 -20h-1056q-22 0 -30 20t8 35l213 202q-180 5 -305.5 97t-125.5 222v896q0 133 131.5 226.5t316.5 93.5h640zM288 224q66 0 113 47t47 113t-47 113t-113 47 t-113 -47t-47 -113t47 -113t113 -47zM704 768v512h-544v-512h544zM1248 224q66 0 113 47t47 113t-47 113t-113 47t-113 -47t-47 -113t47 -113t113 -47zM1408 768v512h-576v-512h576z" /> +<glyph unicode="&#xf23a;" horiz-adv-x="1792" d="M597 1115v-1173q0 -25 -12.5 -42.5t-36.5 -17.5q-17 0 -33 8l-465 233q-21 10 -35.5 33.5t-14.5 46.5v1140q0 20 10 34t29 14q14 0 44 -15l511 -256q3 -3 3 -5zM661 1014l534 -866l-534 266v600zM1792 996v-1054q0 -25 -14 -40.5t-38 -15.5t-47 13l-441 220zM1789 1116 q0 -3 -256.5 -419.5t-300.5 -487.5l-390 634l324 527q17 28 52 28q14 0 26 -6l541 -270q4 -2 4 -6z" /> +<glyph unicode="&#xf23b;" d="M809 532l266 499h-112l-157 -312q-24 -48 -44 -92l-42 92l-155 312h-120l263 -493v-324h101v318zM1536 1408v-1536h-1536v1536h1536z" /> +<glyph unicode="&#xf23c;" horiz-adv-x="2296" d="M478 -139q-8 -16 -27 -34.5t-37 -25.5q-25 -9 -51.5 3.5t-28.5 31.5q-1 22 40 55t68 38q23 4 34 -21.5t2 -46.5zM1819 -139q7 -16 26 -34.5t38 -25.5q25 -9 51.5 3.5t27.5 31.5q2 22 -39.5 55t-68.5 38q-22 4 -33 -21.5t-2 -46.5zM1867 -30q13 -27 56.5 -59.5t77.5 -41.5 q45 -13 82 4.5t37 50.5q0 46 -67.5 100.5t-115.5 59.5q-40 5 -63.5 -37.5t-6.5 -76.5zM428 -30q-13 -27 -56 -59.5t-77 -41.5q-45 -13 -82 4.5t-37 50.5q0 46 67.5 100.5t115.5 59.5q40 5 63 -37.5t6 -76.5zM1158 1094h1q-41 0 -76 -15q27 -8 44 -30.5t17 -49.5 q0 -35 -27 -60t-65 -25q-52 0 -80 43q-5 -23 -5 -42q0 -74 56 -126.5t135 -52.5q80 0 136 52.5t56 126.5t-56 126.5t-136 52.5zM1462 1312q-99 109 -220.5 131.5t-245.5 -44.5q27 60 82.5 96.5t118 39.5t121.5 -17t99.5 -74.5t44.5 -131.5zM2212 73q8 -11 -11 -42 q7 -23 7 -40q1 -56 -44.5 -112.5t-109.5 -91.5t-118 -37q-48 -2 -92 21.5t-66 65.5q-687 -25 -1259 0q-23 -41 -66.5 -65t-92.5 -22q-86 3 -179.5 80.5t-92.5 160.5q2 22 7 40q-19 31 -11 42q6 10 31 1q14 22 41 51q-7 29 2 38q11 10 39 -4q29 20 59 34q0 29 13 37 q23 12 51 -16q35 5 61 -2q18 -4 38 -19v73q-11 0 -18 2q-53 10 -97 44.5t-55 87.5q-9 38 0 81q15 62 93 95q2 17 19 35.5t36 23.5t33 -7.5t19 -30.5h13q46 -5 60 -23q3 -3 5 -7q10 1 30.5 3.5t30.5 3.5q-15 11 -30 17q-23 40 -91 43q0 6 1 10q-62 2 -118.5 18.5t-84.5 47.5 q-32 36 -42.5 92t-2.5 112q16 126 90 179q23 16 52 4.5t32 -40.5q0 -1 1.5 -14t2.5 -21t3 -20t5.5 -19t8.5 -10q27 -14 76 -12q48 46 98 74q-40 4 -162 -14l47 46q61 58 163 111q145 73 282 86q-20 8 -41 15.5t-47 14t-42.5 10.5t-47.5 11t-43 10q595 126 904 -139 q98 -84 158 -222q85 -10 121 9h1q5 3 8.5 10t5.5 19t3 19.5t3 21.5l1 14q3 28 32 40t52 -5q73 -52 91 -178q7 -57 -3.5 -113t-42.5 -91q-28 -32 -83.5 -48.5t-115.5 -18.5v-10q-71 -2 -95 -43q-14 -5 -31 -17q11 -1 32 -3.5t30 -3.5q1 4 5 8q16 18 60 23h13q5 18 19 30t33 8 t36 -23t19 -36q79 -32 93 -95q9 -40 1 -81q-12 -53 -56 -88t-97 -44q-10 -2 -17 -2q0 -49 -1 -73q20 15 38 19q26 7 61 2q28 28 51 16q14 -9 14 -37q33 -16 59 -34q27 13 38 4q10 -10 2 -38q28 -30 41 -51q23 8 31 -1zM1937 1025q0 -29 -9 -54q82 -32 112 -132 q4 37 -9.5 98.5t-41.5 90.5q-20 19 -36 17t-16 -20zM1859 925q35 -42 47.5 -108.5t-0.5 -124.5q67 13 97 45q13 14 18 28q-3 64 -31 114.5t-79 66.5q-15 -15 -52 -21zM1822 921q-30 0 -44 1q42 -115 53 -239q21 0 43 3q16 68 1 135t-53 100zM258 839q30 100 112 132 q-9 25 -9 54q0 18 -16.5 20t-35.5 -17q-28 -29 -41.5 -90.5t-9.5 -98.5zM294 737q29 -31 97 -45q-13 58 -0.5 124.5t47.5 108.5v0q-37 6 -52 21q-51 -16 -78.5 -66t-31.5 -115q9 -17 18 -28zM471 683q14 124 73 235q-19 -4 -55 -18l-45 -19v1q-46 -89 -20 -196q25 -3 47 -3z M1434 644q8 -38 16.5 -108.5t11.5 -89.5q3 -18 9.5 -21.5t23.5 4.5q40 20 62 85.5t23 125.5q-24 2 -146 4zM1152 1285q-116 0 -199 -82.5t-83 -198.5q0 -117 83 -199.5t199 -82.5t199 82.5t83 199.5q0 116 -83 198.5t-199 82.5zM1380 646q-106 2 -211 0v1q-1 -27 2.5 -86 t13.5 -66q29 -14 93.5 -14.5t95.5 10.5q9 3 11 39t-0.5 69.5t-4.5 46.5zM1112 447q8 4 9.5 48t-0.5 88t-4 63v1q-212 -3 -214 -3q-4 -20 -7 -62t0 -83t14 -46q34 -15 101 -16t101 10zM718 636q-16 -59 4.5 -118.5t77.5 -84.5q15 -8 24 -5t12 21q3 16 8 90t10 103 q-69 -2 -136 -6zM591 510q3 -23 -34 -36q132 -141 271.5 -240t305.5 -154q172 49 310.5 146t293.5 250q-33 13 -30 34l3 9v1v-1q-17 2 -50 5.5t-48 4.5q-26 -90 -82 -132q-51 -38 -82 1q-5 6 -9 14q-7 13 -17 62q-2 -5 -5 -9t-7.5 -7t-8 -5.5t-9.5 -4l-10 -2.5t-12 -2 l-12 -1.5t-13.5 -1t-13.5 -0.5q-106 -9 -163 11q-4 -17 -10 -26.5t-21 -15t-23 -7t-36 -3.5q-2 0 -3 -0.5t-3 -0.5h-3q-179 -17 -203 40q-2 -63 -56 -54q-47 8 -91 54q-12 13 -20 26q-17 29 -26 65q-58 -6 -87 -10q1 -2 4 -10zM507 -118q3 14 3 30q-17 71 -51 130t-73 70 q-41 12 -101.5 -14.5t-104.5 -80t-39 -107.5q35 -53 100 -93t119 -42q51 -2 94 28t53 79zM510 53q23 -63 27 -119q195 113 392 174q-98 52 -180.5 120t-179.5 165q-6 -4 -29 -13q0 -2 -1 -5t-1 -4q31 -18 22 -37q-12 -23 -56 -34q-10 -13 -29 -24h-1q-2 -83 1 -150 q19 -34 35 -73zM579 -113q532 -21 1145 0q-254 147 -428 196q-76 -35 -156 -57q-8 -3 -16 0q-65 21 -129 49q-208 -60 -416 -188h-1v-1q1 0 1 1zM1763 -67q4 54 28 120q14 38 33 71l-1 -1q3 77 3 153q-15 8 -30 25q-42 9 -56 33q-9 20 22 38q-2 4 -2 9q-16 4 -28 12 q-204 -190 -383 -284q198 -59 414 -176zM2155 -90q5 54 -39 107.5t-104 80t-102 14.5q-38 -11 -72.5 -70.5t-51.5 -129.5q0 -16 3 -30q10 -49 53 -79t94 -28q54 2 119 42t100 93z" /> +<glyph unicode="&#xf23d;" horiz-adv-x="2304" d="M1524 -25q0 -68 -48 -116t-116 -48t-116.5 48t-48.5 116t48.5 116.5t116.5 48.5t116 -48.5t48 -116.5zM775 -25q0 -68 -48.5 -116t-116.5 -48t-116 48t-48 116t48 116.5t116 48.5t116.5 -48.5t48.5 -116.5zM0 1469q57 -60 110.5 -104.5t121 -82t136 -63t166 -45.5 t200 -31.5t250 -18.5t304 -9.5t372.5 -2.5q139 0 244.5 -5t181 -16.5t124 -27.5t71 -39.5t24 -51.5t-19.5 -64t-56.5 -76.5t-89.5 -91t-116 -104.5t-139 -119q-185 -157 -286 -247q29 51 76.5 109t94 105.5t94.5 98.5t83 91.5t54 80.5t13 70t-45.5 55.5t-116.5 41t-204 23.5 t-304 5q-168 -2 -314 6t-256 23t-204.5 41t-159.5 51.5t-122.5 62.5t-91.5 66.5t-68 71.5t-50.5 69.5t-40 68t-36.5 59.5z" /> +<glyph unicode="&#xf23e;" horiz-adv-x="1792" d="M896 1472q-169 0 -323 -66t-265.5 -177.5t-177.5 -265.5t-66 -323t66 -323t177.5 -265.5t265.5 -177.5t323 -66t323 66t265.5 177.5t177.5 265.5t66 323t-66 323t-177.5 265.5t-265.5 177.5t-323 66zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348 t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71zM496 704q16 0 16 -16v-480q0 -16 -16 -16h-32q-16 0 -16 16v480q0 16 16 16h32zM896 640q53 0 90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-114q0 -14 -9 -23 t-23 -9h-64q-14 0 -23 9t-9 23v114q-29 17 -46.5 46t-17.5 64q0 53 37.5 90.5t90.5 37.5zM896 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM544 928v-96 q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5v-96q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v96q0 146 -103 249t-249 103t-249 -103t-103 -249zM1408 192v512q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-512 q0 -26 19 -45t45 -19h896q26 0 45 19t19 45z" /> +<glyph unicode="&#xf240;" horiz-adv-x="2304" d="M1920 1024v-768h-1664v768h1664zM2048 448h128v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288zM2304 832v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113 v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160q53 0 90.5 -37.5t37.5 -90.5z" /> +<glyph unicode="&#xf241;" horiz-adv-x="2304" d="M256 256v768h1280v-768h-1280zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="&#xf242;" horiz-adv-x="2304" d="M256 256v768h896v-768h-896zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="&#xf243;" horiz-adv-x="2304" d="M256 256v768h512v-768h-512zM2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9 h-1856q-14 0 -23 -9t-9 -23v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="&#xf244;" horiz-adv-x="2304" d="M2176 960q53 0 90.5 -37.5t37.5 -90.5v-384q0 -53 -37.5 -90.5t-90.5 -37.5v-160q0 -66 -47 -113t-113 -47h-1856q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1856q66 0 113 -47t47 -113v-160zM2176 448v384h-128v288q0 14 -9 23t-23 9h-1856q-14 0 -23 -9t-9 -23 v-960q0 -14 9 -23t23 -9h1856q14 0 23 9t9 23v288h128z" /> +<glyph unicode="&#xf245;" horiz-adv-x="1280" d="M1133 493q31 -30 14 -69q-17 -40 -59 -40h-382l201 -476q10 -25 0 -49t-34 -35l-177 -75q-25 -10 -49 0t-35 34l-191 452l-312 -312q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v1504q0 42 40 59q12 5 24 5q27 0 45 -19z" /> +<glyph unicode="&#xf246;" horiz-adv-x="1024" d="M832 1408q-320 0 -320 -224v-416h128v-128h-128v-544q0 -224 320 -224h64v-128h-64q-272 0 -384 146q-112 -146 -384 -146h-64v128h64q320 0 320 224v544h-128v128h128v416q0 224 -320 224h-64v128h64q272 0 384 -146q112 146 384 146h64v-128h-64z" /> +<glyph unicode="&#xf247;" horiz-adv-x="2048" d="M2048 1152h-128v-1024h128v-384h-384v128h-1280v-128h-384v384h128v1024h-128v384h384v-128h1280v128h384v-384zM1792 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 -128v128h-128v-128h128zM1664 0v128h128v1024h-128v128h-1280v-128h-128v-1024h128v-128 h1280zM1920 -128v128h-128v-128h128zM1280 896h384v-768h-896v256h-384v768h896v-256zM512 512h640v512h-640v-512zM1536 256v512h-256v-384h-384v-128h640z" /> +<glyph unicode="&#xf248;" horiz-adv-x="2304" d="M2304 768h-128v-640h128v-384h-384v128h-896v-128h-384v384h128v128h-384v-128h-384v384h128v640h-128v384h384v-128h896v128h384v-384h-128v-128h384v128h384v-384zM2048 1024v-128h128v128h-128zM1408 1408v-128h128v128h-128zM128 1408v-128h128v128h-128zM256 256 v128h-128v-128h128zM1536 384h-128v-128h128v128zM384 384h896v128h128v640h-128v128h-896v-128h-128v-640h128v-128zM896 -128v128h-128v-128h128zM2176 -128v128h-128v-128h128zM2048 128v640h-128v128h-384v-384h128v-384h-384v128h-384v-128h128v-128h896v128h128z" /> +<glyph unicode="&#xf249;" d="M1024 288v-416h-928q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68v-928h-416q-40 0 -68 -28t-28 -68zM1152 256h381q-15 -82 -65 -132l-184 -184q-50 -50 -132 -65v381z" /> +<glyph unicode="&#xf24a;" d="M1400 256h-248v-248q29 10 41 22l185 185q12 12 22 41zM1120 384h288v896h-1280v-1280h896v288q0 40 28 68t68 28zM1536 1312v-1024q0 -40 -20 -88t-48 -76l-184 -184q-28 -28 -76 -48t-88 -20h-1024q-40 0 -68 28t-28 68v1344q0 40 28 68t68 28h1344q40 0 68 -28t28 -68 z" /> +<glyph unicode="&#xf24b;" horiz-adv-x="2304" d="M1951 538q0 -26 -15.5 -44.5t-38.5 -23.5q-8 -2 -18 -2h-153v140h153q10 0 18 -2q23 -5 38.5 -23.5t15.5 -44.5zM1933 751q0 -25 -15 -42t-38 -21q-3 -1 -15 -1h-139v129h139q3 0 8.5 -0.5t6.5 -0.5q23 -4 38 -21.5t15 -42.5zM728 587v308h-228v-308q0 -58 -38 -94.5 t-105 -36.5q-108 0 -229 59v-112q53 -15 121 -23t109 -9l42 -1q328 0 328 217zM1442 403v113q-99 -52 -200 -59q-108 -8 -169 41t-61 142t61 142t169 41q101 -7 200 -58v112q-48 12 -100 19.5t-80 9.5l-28 2q-127 6 -218.5 -14t-140.5 -60t-71 -88t-22 -106t22 -106t71 -88 t140.5 -60t218.5 -14q101 4 208 31zM2176 518q0 54 -43 88.5t-109 39.5v3q57 8 89 41.5t32 79.5q0 55 -41 88t-107 36q-3 0 -12 0.5t-14 0.5h-455v-510h491q74 0 121.5 36.5t47.5 96.5zM2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90 t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf24c;" horiz-adv-x="2304" d="M858 295v693q-106 -41 -172 -135.5t-66 -211.5t66 -211.5t172 -134.5zM1362 641q0 117 -66 211.5t-172 135.5v-694q106 41 172 135.5t66 211.5zM1577 641q0 -159 -78.5 -294t-213.5 -213.5t-294 -78.5q-119 0 -227.5 46.5t-187 125t-125 187t-46.5 227.5q0 159 78.5 294 t213.5 213.5t294 78.5t294 -78.5t213.5 -213.5t78.5 -294zM1960 634q0 139 -55.5 261.5t-147.5 205.5t-213.5 131t-252.5 48h-301q-176 0 -323.5 -81t-235 -230t-87.5 -335q0 -171 87 -317.5t236 -231.5t323 -85h301q129 0 251.5 50.5t214.5 135t147.5 202.5t55.5 246z M2304 1280v-1280q0 -52 -38 -90t-90 -38h-2048q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h2048q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf24d;" horiz-adv-x="1792" d="M1664 -96v1088q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5t9.5 22.5zM1792 992v-1088q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113 zM1408 1376v-160h-128v160q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-1088q0 -13 9.5 -22.5t22.5 -9.5h160v-128h-160q-66 0 -113 47t-47 113v1088q0 66 47 113t113 47h1088q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf24e;" horiz-adv-x="2304" d="M1728 1088l-384 -704h768zM448 1088l-384 -704h768zM1269 1280q-14 -40 -45.5 -71.5t-71.5 -45.5v-1291h608q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1344q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h608v1291q-40 14 -71.5 45.5t-45.5 71.5h-491q-14 0 -23 9t-9 23v64 q0 14 9 23t23 9h491q21 57 70 92.5t111 35.5t111 -35.5t70 -92.5h491q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-491zM1088 1264q33 0 56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5t23.5 -56.5t56.5 -23.5zM2176 384q0 -73 -46.5 -131t-117.5 -91 t-144.5 -49.5t-139.5 -16.5t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81zM896 384q0 -73 -46.5 -131t-117.5 -91t-144.5 -49.5t-139.5 -16.5 t-139.5 16.5t-144.5 49.5t-117.5 91t-46.5 131q0 11 35 81t92 174.5t107 195.5t102 184t56 100q18 33 56 33t56 -33q4 -7 56 -100t102 -184t107 -195.5t92 -174.5t35 -81z" /> +<glyph unicode="&#xf250;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-77 -29 -149 -92.5 t-129.5 -152.5t-92.5 -210t-35 -253h1024q0 132 -35 253t-92.5 210t-129.5 152.5t-149 92.5q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> +<glyph unicode="&#xf251;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -66 9 -128h1006q9 61 9 128zM1280 -128q0 130 -34 249.5t-90.5 208t-126.5 152t-146 94.5h-230q-76 -31 -146 -94.5t-126.5 -152t-90.5 -208t-34 -249.5h1024z" /> +<glyph unicode="&#xf252;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM1280 1408h-1024q0 -206 85 -384h854q85 178 85 384zM1223 192q-54 141 -145.5 241.5t-194.5 142.5h-230q-103 -42 -194.5 -142.5t-145.5 -241.5h910z" /> +<glyph unicode="&#xf253;" d="M1408 1408q0 -261 -106.5 -461.5t-266.5 -306.5q160 -106 266.5 -306.5t106.5 -461.5h96q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h96q0 261 106.5 461.5t266.5 306.5q-160 106 -266.5 306.5t-106.5 461.5h-96q-14 0 -23 9 t-9 23v64q0 14 9 23t23 9h1472q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96zM874 700q77 29 149 92.5t129.5 152.5t92.5 210t35 253h-1024q0 -132 35 -253t92.5 -210t129.5 -152.5t149 -92.5q19 -7 30.5 -23.5t11.5 -36.5t-11.5 -36.5t-30.5 -23.5q-137 -51 -244 -196 h700q-107 145 -244 196q-19 7 -30.5 23.5t-11.5 36.5t11.5 36.5t30.5 23.5z" /> +<glyph unicode="&#xf254;" d="M1504 -64q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472zM130 0q3 55 16 107t30 95t46 87t53.5 76t64.5 69.5t66 60t70.5 55t66.5 47.5t65 43q-43 28 -65 43t-66.5 47.5t-70.5 55t-66 60t-64.5 69.5t-53.5 76t-46 87 t-30 95t-16 107h1276q-3 -55 -16 -107t-30 -95t-46 -87t-53.5 -76t-64.5 -69.5t-66 -60t-70.5 -55t-66.5 -47.5t-65 -43q43 -28 65 -43t66.5 -47.5t70.5 -55t66 -60t64.5 -69.5t53.5 -76t46 -87t30 -95t16 -107h-1276zM1504 1536q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9 h-1472q-14 0 -23 9t-9 23v128q0 14 9 23t23 9h1472z" /> +<glyph unicode="&#xf255;" d="M768 1152q-53 0 -90.5 -37.5t-37.5 -90.5v-128h-32v93q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-429l-32 30v172q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-224q0 -47 35 -82l310 -296q39 -39 39 -102q0 -26 19 -45t45 -19h640q26 0 45 19t19 45v25 q0 41 10 77l108 436q10 36 10 77v246q0 48 -32 81.5t-80 33.5q-46 0 -79 -33t-33 -79v-32h-32v125q0 40 -25 72.5t-64 40.5q-14 2 -23 2q-46 0 -79 -33t-33 -79v-128h-32v122q0 51 -32.5 89.5t-82.5 43.5q-5 1 -13 1zM768 1280q84 0 149 -50q57 34 123 34q59 0 111 -27 t86 -76q27 7 59 7q100 0 170 -71.5t70 -171.5v-246q0 -51 -13 -108l-109 -436q-6 -24 -6 -71q0 -80 -56 -136t-136 -56h-640q-84 0 -138 58.5t-54 142.5l-308 296q-76 73 -76 175v224q0 99 70.5 169.5t169.5 70.5q11 0 16 -1q6 95 75.5 160t164.5 65q52 0 98 -21 q72 69 174 69z" /> +<glyph unicode="&#xf256;" horiz-adv-x="1792" d="M880 1408q-46 0 -79 -33t-33 -79v-656h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528v-256l-154 205q-38 51 -102 51q-53 0 -90.5 -37.5t-37.5 -90.5q0 -43 26 -77l384 -512q38 -51 102 -51h688q34 0 61 22t34 56l76 405q5 32 5 59v498q0 46 -33 79t-79 33t-79 -33 t-33 -79v-272h-32v528q0 46 -33 79t-79 33t-79 -33t-33 -79v-528h-32v656q0 46 -33 79t-79 33zM880 1536q68 0 125.5 -35.5t88.5 -96.5q19 4 42 4q99 0 169.5 -70.5t70.5 -169.5v-17q105 6 180.5 -64t75.5 -175v-498q0 -40 -8 -83l-76 -404q-14 -79 -76.5 -131t-143.5 -52 h-688q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 106 75 181t181 75q78 0 128 -34v434q0 99 70.5 169.5t169.5 70.5q23 0 42 -4q31 61 88.5 96.5t125.5 35.5z" /> +<glyph unicode="&#xf257;" horiz-adv-x="1792" d="M1073 -128h-177q-163 0 -226 141q-23 49 -23 102v5q-62 30 -98.5 88.5t-36.5 127.5q0 38 5 48h-261q-106 0 -181 75t-75 181t75 181t181 75h113l-44 17q-74 28 -119.5 93.5t-45.5 145.5q0 106 75 181t181 75q46 0 91 -17l628 -239h401q106 0 181 -75t75 -181v-668 q0 -88 -54 -157.5t-140 -90.5l-339 -85q-92 -23 -186 -23zM1024 583l-155 -71l-163 -74q-30 -14 -48 -41.5t-18 -60.5q0 -46 33 -79t79 -33q26 0 46 10l338 154q-49 10 -80.5 50t-31.5 90v55zM1344 272q0 46 -33 79t-79 33q-26 0 -46 -10l-290 -132q-28 -13 -37 -17 t-30.5 -17t-29.5 -23.5t-16 -29t-8 -40.5q0 -50 31.5 -82t81.5 -32q20 0 38 9l352 160q30 14 48 41.5t18 60.5zM1112 1024l-650 248q-24 8 -46 8q-53 0 -90.5 -37.5t-37.5 -90.5q0 -40 22.5 -73t59.5 -47l526 -200v-64h-640q-53 0 -90.5 -37.5t-37.5 -90.5t37.5 -90.5 t90.5 -37.5h535l233 106v198q0 63 46 106l111 102h-69zM1073 0q82 0 155 19l339 85q43 11 70 45.5t27 78.5v668q0 53 -37.5 90.5t-90.5 37.5h-308l-136 -126q-36 -33 -36 -82v-296q0 -46 33 -77t79 -31t79 35t33 81v208h32v-208q0 -70 -57 -114q52 -8 86.5 -48.5t34.5 -93.5 q0 -42 -23 -78t-61 -53l-310 -141h91z" /> +<glyph unicode="&#xf258;" horiz-adv-x="2048" d="M1151 1536q61 0 116 -28t91 -77l572 -781q118 -159 118 -359v-355q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136v177l-286 143h-546q-80 0 -136 56t-56 136v32q0 119 84.5 203.5t203.5 84.5h420l42 128h-686q-100 0 -173.5 67.5t-81.5 166.5q-65 79 -65 182v32 q0 80 56 136t136 56h959zM1920 -64v355q0 157 -93 284l-573 781q-39 52 -103 52h-959q-26 0 -45 -19t-19 -45q0 -32 1.5 -49.5t9.5 -40.5t25 -43q10 31 35.5 50t56.5 19h832v-32h-832q-26 0 -45 -19t-19 -45q0 -44 3 -58q8 -44 44 -73t81 -29h640h91q40 0 68 -28t28 -68 q0 -15 -5 -30l-64 -192q-10 -29 -35 -47.5t-56 -18.5h-443q-66 0 -113 -47t-47 -113v-32q0 -26 19 -45t45 -19h561q16 0 29 -7l317 -158q24 -13 38.5 -36t14.5 -50v-197q0 -26 19 -45t45 -19h384q26 0 45 19t19 45z" /> +<glyph unicode="&#xf259;" horiz-adv-x="2048" d="M816 1408q-48 0 -79.5 -34t-31.5 -82q0 -14 3 -28l150 -624h-26l-116 482q-9 38 -39.5 62t-69.5 24q-47 0 -79 -34t-32 -81q0 -11 4 -29q3 -13 39 -161t68 -282t32 -138v-227l-307 230q-34 26 -77 26q-52 0 -89.5 -36.5t-37.5 -88.5q0 -67 56 -110l507 -379 q34 -26 76 -26h694q33 0 59 20.5t34 52.5l100 401q8 30 10 88t9 86l116 478q3 12 3 26q0 46 -33 79t-80 33q-38 0 -69 -25.5t-40 -62.5l-99 -408h-26l132 547q3 14 3 28q0 47 -32 80t-80 33q-38 0 -68.5 -24t-39.5 -62l-145 -602h-127l-164 682q-9 38 -39.5 62t-68.5 24z M1461 -256h-694q-85 0 -153 51l-507 380q-50 38 -78.5 94t-28.5 118q0 105 75 179t180 74q25 0 49.5 -5.5t41.5 -11t41 -20.5t35 -23t38.5 -29.5t37.5 -28.5l-123 512q-7 35 -7 59q0 93 60 162t152 79q14 87 80.5 144.5t155.5 57.5q83 0 148 -51.5t85 -132.5l103 -428 l83 348q20 81 85 132.5t148 51.5q87 0 152.5 -54t82.5 -139q93 -10 155 -78t62 -161q0 -30 -7 -57l-116 -477q-5 -22 -5 -67q0 -51 -13 -108l-101 -401q-19 -75 -79.5 -122.5t-137.5 -47.5z" /> +<glyph unicode="&#xf25a;" horiz-adv-x="1792" d="M640 1408q-53 0 -90.5 -37.5t-37.5 -90.5v-512v-384l-151 202q-41 54 -107 54q-52 0 -89 -38t-37 -90q0 -43 26 -77l384 -512q38 -51 102 -51h718q22 0 39.5 13.5t22.5 34.5l92 368q24 96 24 194v217q0 41 -28 71t-68 30t-68 -28t-28 -68h-32v61q0 48 -32 81.5t-80 33.5 q-46 0 -79 -33t-33 -79v-64h-32v90q0 55 -37 94.5t-91 39.5q-53 0 -90.5 -37.5t-37.5 -90.5v-96h-32v570q0 55 -37 94.5t-91 39.5zM640 1536q107 0 181.5 -77.5t74.5 -184.5v-220q22 2 32 2q99 0 173 -69q47 21 99 21q113 0 184 -87q27 7 56 7q94 0 159 -67.5t65 -161.5 v-217q0 -116 -28 -225l-92 -368q-16 -64 -68 -104.5t-118 -40.5h-718q-60 0 -114.5 27.5t-90.5 74.5l-384 512q-51 68 -51 154q0 105 74.5 180.5t179.5 75.5q71 0 130 -35v547q0 106 75 181t181 75zM768 128v384h-32v-384h32zM1024 128v384h-32v-384h32zM1280 128v384h-32 v-384h32z" /> +<glyph unicode="&#xf25b;" d="M1288 889q60 0 107 -23q141 -63 141 -226v-177q0 -94 -23 -186l-85 -339q-21 -86 -90.5 -140t-157.5 -54h-668q-106 0 -181 75t-75 181v401l-239 628q-17 45 -17 91q0 106 75 181t181 75q80 0 145.5 -45.5t93.5 -119.5l17 -44v113q0 106 75 181t181 75t181 -75t75 -181 v-261q27 5 48 5q69 0 127.5 -36.5t88.5 -98.5zM1072 896q-33 0 -60.5 -18t-41.5 -48l-74 -163l-71 -155h55q50 0 90 -31.5t50 -80.5l154 338q10 20 10 46q0 46 -33 79t-79 33zM1293 761q-22 0 -40.5 -8t-29 -16t-23.5 -29.5t-17 -30.5t-17 -37l-132 -290q-10 -20 -10 -46 q0 -46 33 -79t79 -33q33 0 60.5 18t41.5 48l160 352q9 18 9 38q0 50 -32 81.5t-82 31.5zM128 1120q0 -22 8 -46l248 -650v-69l102 111q43 46 106 46h198l106 233v535q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5v-640h-64l-200 526q-14 37 -47 59.5t-73 22.5 q-53 0 -90.5 -37.5t-37.5 -90.5zM1180 -128q44 0 78.5 27t45.5 70l85 339q19 73 19 155v91l-141 -310q-17 -38 -53 -61t-78 -23q-53 0 -93.5 34.5t-48.5 86.5q-44 -57 -114 -57h-208v32h208q46 0 81 33t35 79t-31 79t-77 33h-296q-49 0 -82 -36l-126 -136v-308 q0 -53 37.5 -90.5t90.5 -37.5h668z" /> +<glyph unicode="&#xf25c;" horiz-adv-x="1973" d="M857 992v-117q0 -13 -9.5 -22t-22.5 -9h-298v-812q0 -13 -9 -22.5t-22 -9.5h-135q-13 0 -22.5 9t-9.5 23v812h-297q-13 0 -22.5 9t-9.5 22v117q0 14 9 23t23 9h793q13 0 22.5 -9.5t9.5 -22.5zM1895 995l77 -961q1 -13 -8 -24q-10 -10 -23 -10h-134q-12 0 -21 8.5 t-10 20.5l-46 588l-189 -425q-8 -19 -29 -19h-120q-20 0 -29 19l-188 427l-45 -590q-1 -12 -10 -20.5t-21 -8.5h-135q-13 0 -23 10q-9 10 -9 24l78 961q1 12 10 20.5t21 8.5h142q20 0 29 -19l220 -520q10 -24 20 -51q3 7 9.5 24.5t10.5 26.5l221 520q9 19 29 19h141 q13 0 22 -8.5t10 -20.5z" /> +<glyph unicode="&#xf25d;" horiz-adv-x="1792" d="M1042 833q0 88 -60 121q-33 18 -117 18h-123v-281h162q66 0 102 37t36 105zM1094 548l205 -373q8 -17 -1 -31q-8 -16 -27 -16h-152q-20 0 -28 17l-194 365h-155v-350q0 -14 -9 -23t-23 -9h-134q-14 0 -23 9t-9 23v960q0 14 9 23t23 9h294q128 0 190 -24q85 -31 134 -109 t49 -180q0 -92 -42.5 -165.5t-115.5 -109.5q6 -10 9 -16zM896 1376q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM1792 640 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="&#xf25e;" horiz-adv-x="1792" d="M605 303q153 0 257 104q14 18 3 36l-45 82q-6 13 -24 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78 q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-148 0 -246 -96.5t-98 -240.5q0 -146 97 -241.5t247 -95.5zM1235 303q153 0 257 104q14 18 4 36l-45 82q-8 14 -25 17q-16 2 -27 -11l-4 -3q-4 -4 -11.5 -10t-17.5 -13t-23.5 -14.5t-28.5 -13.5t-33.5 -9.5 t-37.5 -3.5q-76 0 -125 50t-49 127q0 76 48 125.5t122 49.5q37 0 71.5 -14t50.5 -28l16 -14q11 -11 26 -10q16 2 24 14l53 78q13 20 -2 39q-3 4 -11 12t-30 23.5t-48.5 28t-67.5 22.5t-86 10q-147 0 -245.5 -96.5t-98.5 -240.5q0 -146 97 -241.5t247 -95.5zM896 1376 q-150 0 -286 -58.5t-234.5 -157t-157 -234.5t-58.5 -286t58.5 -286t157 -234.5t234.5 -157t286 -58.5t286 58.5t234.5 157t157 234.5t58.5 286t-58.5 286t-157 234.5t-234.5 157t-286 58.5zM896 1536q182 0 348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71z" /> +<glyph unicode="&#xf260;" horiz-adv-x="2048" d="M736 736l384 -384l-384 -384l-672 672l672 672l168 -168l-96 -96l-72 72l-480 -480l480 -480l193 193l-289 287zM1312 1312l672 -672l-672 -672l-168 168l96 96l72 -72l480 480l-480 480l-193 -193l289 -287l-96 -96l-384 384z" /> +<glyph unicode="&#xf261;" horiz-adv-x="1792" d="M717 182l271 271l-279 279l-88 -88l192 -191l-96 -96l-279 279l279 279l40 -40l87 87l-127 128l-454 -454zM1075 190l454 454l-454 454l-271 -271l279 -279l88 88l-192 191l96 96l279 -279l-279 -279l-40 40l-87 -88zM1792 640q0 -182 -71 -348t-191 -286t-286 -191 t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="&#xf262;" horiz-adv-x="2304" d="M651 539q0 -39 -27.5 -66.5t-65.5 -27.5q-39 0 -66.5 27.5t-27.5 66.5q0 38 27.5 65.5t66.5 27.5q38 0 65.5 -27.5t27.5 -65.5zM1805 540q0 -39 -27.5 -66.5t-66.5 -27.5t-66.5 27.5t-27.5 66.5t27.5 66t66.5 27t66.5 -27t27.5 -66zM765 539q0 79 -56.5 136t-136.5 57 t-136.5 -56.5t-56.5 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM1918 540q0 80 -56.5 136.5t-136.5 56.5q-79 0 -136 -56.5t-57 -136.5t56.5 -136.5t136.5 -56.5t136.5 56.5t56.5 136.5zM850 539q0 -116 -81.5 -197.5t-196.5 -81.5q-116 0 -197.5 82t-81.5 197 t82 196.5t197 81.5t196.5 -81.5t81.5 -196.5zM2004 540q0 -115 -81.5 -196.5t-197.5 -81.5q-115 0 -196.5 81.5t-81.5 196.5t81.5 196.5t196.5 81.5q116 0 197.5 -81.5t81.5 -196.5zM1040 537q0 191 -135.5 326.5t-326.5 135.5q-125 0 -231 -62t-168 -168.5t-62 -231.5 t62 -231.5t168 -168.5t231 -62q191 0 326.5 135.5t135.5 326.5zM1708 1110q-254 111 -556 111q-319 0 -573 -110q117 0 223 -45.5t182.5 -122.5t122 -183t45.5 -223q0 115 43.5 219.5t118 180.5t177.5 123t217 50zM2187 537q0 191 -135 326.5t-326 135.5t-326.5 -135.5 t-135.5 -326.5t135.5 -326.5t326.5 -135.5t326 135.5t135 326.5zM1921 1103h383q-44 -51 -75 -114.5t-40 -114.5q110 -151 110 -337q0 -156 -77 -288t-209 -208.5t-287 -76.5q-133 0 -249 56t-196 155q-47 -56 -129 -179q-11 22 -53.5 82.5t-74.5 97.5 q-80 -99 -196.5 -155.5t-249.5 -56.5q-155 0 -287 76.5t-209 208.5t-77 288q0 186 110 337q-9 51 -40 114.5t-75 114.5h365q149 100 355 156.5t432 56.5q224 0 421 -56t348 -157z" /> +<glyph unicode="&#xf263;" horiz-adv-x="1280" d="M640 629q-188 0 -321 133t-133 320q0 188 133 321t321 133t321 -133t133 -321q0 -187 -133 -320t-321 -133zM640 1306q-92 0 -157.5 -65.5t-65.5 -158.5q0 -92 65.5 -157.5t157.5 -65.5t157.5 65.5t65.5 157.5q0 93 -65.5 158.5t-157.5 65.5zM1163 574q13 -27 15 -49.5 t-4.5 -40.5t-26.5 -38.5t-42.5 -37t-61.5 -41.5q-115 -73 -315 -94l73 -72l267 -267q30 -31 30 -74t-30 -73l-12 -13q-31 -30 -74 -30t-74 30q-67 68 -267 268l-267 -268q-31 -30 -74 -30t-73 30l-12 13q-31 30 -31 73t31 74l267 267l72 72q-203 21 -317 94 q-39 25 -61.5 41.5t-42.5 37t-26.5 38.5t-4.5 40.5t15 49.5q10 20 28 35t42 22t56 -2t65 -35q5 -4 15 -11t43 -24.5t69 -30.5t92 -24t113 -11q91 0 174 25.5t120 50.5l38 25q33 26 65 35t56 2t42 -22t28 -35z" /> +<glyph unicode="&#xf264;" d="M927 956q0 -66 -46.5 -112.5t-112.5 -46.5t-112.5 46.5t-46.5 112.5t46.5 112.5t112.5 46.5t112.5 -46.5t46.5 -112.5zM1141 593q-10 20 -28 32t-47.5 9.5t-60.5 -27.5q-10 -8 -29 -20t-81 -32t-127 -20t-124 18t-86 36l-27 18q-31 25 -60.5 27.5t-47.5 -9.5t-28 -32 q-22 -45 -2 -74.5t87 -73.5q83 -53 226 -67l-51 -52q-142 -142 -191 -190q-22 -22 -22 -52.5t22 -52.5l9 -9q22 -22 52.5 -22t52.5 22l191 191q114 -115 191 -191q22 -22 52.5 -22t52.5 22l9 9q22 22 22 52.5t-22 52.5l-191 190l-52 52q141 14 225 67q67 44 87 73.5t-2 74.5 zM1092 956q0 134 -95 229t-229 95t-229 -95t-95 -229t95 -229t229 -95t229 95t95 229zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf265;" horiz-adv-x="1720" d="M1565 1408q65 0 110 -45.5t45 -110.5v-519q0 -176 -68 -336t-182.5 -275t-274 -182.5t-334.5 -67.5q-176 0 -335.5 67.5t-274.5 182.5t-183 275t-68 336v519q0 64 46 110t110 46h1409zM861 344q47 0 82 33l404 388q37 35 37 85q0 49 -34.5 83.5t-83.5 34.5q-47 0 -82 -33 l-323 -310l-323 310q-35 33 -81 33q-49 0 -83.5 -34.5t-34.5 -83.5q0 -51 36 -85l405 -388q33 -33 81 -33z" /> +<glyph unicode="&#xf266;" horiz-adv-x="2304" d="M1494 -103l-295 695q-25 -49 -158.5 -305.5t-198.5 -389.5q-1 -1 -27.5 -0.5t-26.5 1.5q-82 193 -255.5 587t-259.5 596q-21 50 -66.5 107.5t-103.5 100.5t-102 43q0 5 -0.5 24t-0.5 27h583v-50q-39 -2 -79.5 -16t-66.5 -43t-10 -64q26 -59 216.5 -499t235.5 -540 q31 61 140 266.5t131 247.5q-19 39 -126 281t-136 295q-38 69 -201 71v50l513 -1v-47q-60 -2 -93.5 -25t-12.5 -69q33 -70 87 -189.5t86 -187.5q110 214 173 363q24 55 -10 79.5t-129 26.5q1 7 1 25v24q64 0 170.5 0.5t180 1t92.5 0.5v-49q-62 -2 -119 -33t-90 -81 l-213 -442q13 -33 127.5 -290t121.5 -274l441 1017q-14 38 -49.5 62.5t-65 31.5t-55.5 8v50l460 -4l1 -2l-1 -44q-139 -4 -201 -145q-526 -1216 -559 -1291h-49z" /> +<glyph unicode="&#xf267;" horiz-adv-x="1792" d="M949 643q0 -26 -16.5 -45t-41.5 -19q-26 0 -45 16.5t-19 41.5q0 26 17 45t42 19t44 -16.5t19 -41.5zM964 585l350 581q-9 -8 -67.5 -62.5t-125.5 -116.5t-136.5 -127t-117 -110.5t-50.5 -51.5l-349 -580q7 7 67 62t126 116.5t136 127t117 111t50 50.5zM1611 640 q0 -201 -104 -371q-3 2 -17 11t-26.5 16.5t-16.5 7.5q-13 0 -13 -13q0 -10 59 -44q-74 -112 -184.5 -190.5t-241.5 -110.5l-16 67q-1 10 -15 10q-5 0 -8 -5.5t-2 -9.5l16 -68q-72 -15 -146 -15q-199 0 -372 105q1 2 13 20.5t21.5 33.5t9.5 19q0 13 -13 13q-6 0 -17 -14.5 t-22.5 -34.5t-13.5 -23q-113 75 -192 187.5t-110 244.5l69 15q10 3 10 15q0 5 -5.5 8t-10.5 2l-68 -15q-14 72 -14 139q0 206 109 379q2 -1 18.5 -12t30 -19t17.5 -8q13 0 13 12q0 6 -12.5 15.5t-32.5 21.5l-20 12q77 112 189 189t244 107l15 -67q2 -10 15 -10q5 0 8 5.5 t2 10.5l-15 66q71 13 134 13q204 0 379 -109q-39 -56 -39 -65q0 -13 12 -13q11 0 48 64q111 -75 187.5 -186t107.5 -241l-56 -12q-10 -2 -10 -16q0 -5 5.5 -8t9.5 -2l57 13q14 -72 14 -140zM1696 640q0 163 -63.5 311t-170.5 255t-255 170.5t-311 63.5t-311 -63.5 t-255 -170.5t-170.5 -255t-63.5 -311t63.5 -311t170.5 -255t255 -170.5t311 -63.5t311 63.5t255 170.5t170.5 255t63.5 311zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191 t191 -286t71 -348z" /> +<glyph unicode="&#xf268;" horiz-adv-x="1792" d="M893 1536q240 2 451 -120q232 -134 352 -372l-742 39q-160 9 -294 -74.5t-185 -229.5l-276 424q128 159 311 245.5t383 87.5zM146 1131l337 -663q72 -143 211 -217t293 -45l-230 -451q-212 33 -385 157.5t-272.5 316t-99.5 411.5q0 267 146 491zM1732 962 q58 -150 59.5 -310.5t-48.5 -306t-153 -272t-246 -209.5q-230 -133 -498 -119l405 623q88 131 82.5 290.5t-106.5 277.5zM896 942q125 0 213.5 -88.5t88.5 -213.5t-88.5 -213.5t-213.5 -88.5t-213.5 88.5t-88.5 213.5t88.5 213.5t213.5 88.5z" /> +<glyph unicode="&#xf269;" horiz-adv-x="1792" d="M903 -256q-283 0 -504.5 150.5t-329.5 398.5q-58 131 -67 301t26 332.5t111 312t179 242.5l-11 -281q11 14 68 15.5t70 -15.5q42 81 160.5 138t234.5 59q-54 -45 -119.5 -148.5t-58.5 -163.5q25 -8 62.5 -13.5t63 -7.5t68 -4t50.5 -3q15 -5 9.5 -45.5t-30.5 -75.5 q-5 -7 -16.5 -18.5t-56.5 -35.5t-101 -34l15 -189l-139 67q-18 -43 -7.5 -81.5t36 -66.5t65.5 -41.5t81 -6.5q51 9 98 34.5t83.5 45t73.5 17.5q61 -4 89.5 -33t19.5 -65q-1 -2 -2.5 -5.5t-8.5 -12.5t-18 -15.5t-31.5 -10.5t-46.5 -1q-60 -95 -144.5 -135.5t-209.5 -29.5 q74 -61 162.5 -82.5t168.5 -6t154.5 52t128 87.5t80.5 104q43 91 39 192.5t-37.5 188.5t-78.5 125q87 -38 137 -79.5t77 -112.5q15 170 -57.5 343t-209.5 284q265 -77 412 -279.5t151 -517.5q2 -127 -40.5 -255t-123.5 -238t-189 -196t-247.5 -135.5t-288.5 -49.5z" /> +<glyph unicode="&#xf26a;" horiz-adv-x="1792" d="M1493 1308q-165 110 -359 110q-155 0 -293 -73t-240 -200q-75 -93 -119.5 -218t-48.5 -266v-42q4 -141 48.5 -266t119.5 -218q102 -127 240 -200t293 -73q194 0 359 110q-121 -108 -274.5 -168t-322.5 -60q-29 0 -43 1q-175 8 -333 82t-272 193t-181 281t-67 339 q0 182 71 348t191 286t286 191t348 71h3q168 -1 320.5 -60.5t273.5 -167.5zM1792 640q0 -192 -77 -362.5t-213 -296.5q-104 -63 -222 -63q-137 0 -255 84q154 56 253.5 233t99.5 405q0 227 -99 404t-253 234q119 83 254 83q119 0 226 -65q135 -125 210.5 -295t75.5 -361z " /> +<glyph unicode="&#xf26b;" horiz-adv-x="1792" d="M1792 599q0 -56 -7 -104h-1151q0 -146 109.5 -244.5t257.5 -98.5q99 0 185.5 46.5t136.5 130.5h423q-56 -159 -170.5 -281t-267.5 -188.5t-321 -66.5q-187 0 -356 83q-228 -116 -394 -116q-237 0 -237 263q0 115 45 275q17 60 109 229q199 360 475 606 q-184 -79 -427 -354q63 274 283.5 449.5t501.5 175.5q30 0 45 -1q255 117 433 117q64 0 116 -13t94.5 -40.5t66.5 -76.5t24 -115q0 -116 -75 -286q101 -182 101 -390zM1722 1239q0 83 -53 132t-137 49q-108 0 -254 -70q121 -47 222.5 -131.5t170.5 -195.5q51 135 51 216z M128 2q0 -86 48.5 -132.5t134.5 -46.5q115 0 266 83q-122 72 -213.5 183t-137.5 245q-98 -205 -98 -332zM632 715h728q-5 142 -113 237t-251 95q-144 0 -251.5 -95t-112.5 -237z" /> +<glyph unicode="&#xf26c;" horiz-adv-x="2048" d="M1792 288v960q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-960q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5zM1920 1248v-960q0 -66 -47 -113t-113 -47h-736v-128h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23 v64q0 14 9 23t23 9h352v128h-736q-66 0 -113 47t-47 113v960q0 66 47 113t113 47h1600q66 0 113 -47t47 -113z" /> +<glyph unicode="&#xf26d;" horiz-adv-x="1792" d="M138 1408h197q-70 -64 -126 -149q-36 -56 -59 -115t-30 -125.5t-8.5 -120t10.5 -132t21 -126t28 -136.5q4 -19 6 -28q51 -238 81 -329q57 -171 152 -275h-272q-48 0 -82 34t-34 82v1304q0 48 34 82t82 34zM1346 1408h308q48 0 82 -34t34 -82v-1304q0 -48 -34 -82t-82 -34 h-178q212 210 196 565l-469 -101q-2 -45 -12 -82t-31 -72t-59.5 -59.5t-93.5 -36.5q-123 -26 -199 40q-32 27 -53 61t-51.5 129t-64.5 258q-35 163 -45.5 263t-5.5 139t23 77q20 41 62.5 73t102.5 45q45 12 83.5 6.5t67 -17t54 -35t43 -48t34.5 -56.5l468 100 q-68 175 -180 287z" /> +<glyph unicode="&#xf26e;" d="M1401 -11l-6 -6q-113 -114 -259 -175q-154 -64 -317 -64q-165 0 -317 64q-148 63 -259 175q-113 112 -175 258q-42 103 -54 189q-4 28 48 36q51 8 56 -20q1 -1 1 -4q18 -90 46 -159q50 -124 152 -226q98 -98 226 -152q132 -56 276 -56q143 0 276 56q128 55 225 152l6 6 q10 10 25 6q12 -3 33 -22q36 -37 17 -58zM929 604l-66 -66l63 -63q21 -21 -7 -49q-17 -17 -32 -17q-10 0 -19 10l-62 61l-66 -66q-5 -5 -15 -5q-15 0 -31 16l-2 2q-18 15 -18 29q0 7 8 17l66 65l-66 66q-16 16 14 45q18 18 31 18q6 0 13 -5l65 -66l65 65q18 17 48 -13 q27 -27 11 -44zM1400 547q0 -118 -46 -228q-45 -105 -126 -186q-80 -80 -187 -126t-228 -46t-228 46t-187 126q-82 82 -125 186q-15 32 -15 40h-1q-9 27 43 44q50 16 60 -12q37 -99 97 -167h1v339v2q3 136 102 232q105 103 253 103q147 0 251 -103t104 -249 q0 -147 -104.5 -251t-250.5 -104q-58 0 -112 16q-28 11 -13 61q16 51 44 43l14 -3q14 -3 32.5 -6t30.5 -3q104 0 176 71.5t72 174.5q0 101 -72 171q-71 71 -175 71q-107 0 -178 -80q-64 -72 -64 -160v-413q110 -67 242 -67q96 0 185 36.5t156 103.5t103.5 155t36.5 183 q0 198 -141 339q-140 140 -339 140q-200 0 -340 -140q-53 -53 -77 -87l-2 -2q-8 -11 -13 -15.5t-21.5 -9.5t-38.5 3q-21 5 -36.5 16.5t-15.5 26.5v680q0 15 10.5 26.5t27.5 11.5h877q30 0 30 -55t-30 -55h-811v-483h1q40 42 102 84t108 61q109 46 231 46q121 0 228 -46 t187 -126q81 -81 126 -186q46 -112 46 -229zM1369 1128q9 -8 9 -18t-5.5 -18t-16.5 -21q-26 -26 -39 -26q-9 0 -16 7q-106 91 -207 133q-128 56 -276 56q-133 0 -262 -49q-27 -10 -45 37q-9 25 -8 38q3 16 16 20q130 57 299 57q164 0 316 -64q137 -58 235 -152z" /> +<glyph unicode="&#xf270;" horiz-adv-x="1792" d="M1551 60q15 6 26 3t11 -17.5t-15 -33.5q-13 -16 -44 -43.5t-95.5 -68t-141 -74t-188 -58t-229.5 -24.5q-119 0 -238 31t-209 76.5t-172.5 104t-132.5 105t-84 87.5q-8 9 -10 16.5t1 12t8 7t11.5 2t11.5 -4.5q192 -117 300 -166q389 -176 799 -90q190 40 391 135z M1758 175q11 -16 2.5 -69.5t-28.5 -102.5q-34 -83 -85 -124q-17 -14 -26 -9t0 24q21 45 44.5 121.5t6.5 98.5q-5 7 -15.5 11.5t-27 6t-29.5 2.5t-35 0t-31.5 -2t-31 -3t-22.5 -2q-6 -1 -13 -1.5t-11 -1t-8.5 -1t-7 -0.5h-5.5h-4.5t-3 0.5t-2 1.5l-1.5 3q-6 16 47 40t103 30 q46 7 108 1t76 -24zM1364 618q0 -31 13.5 -64t32 -58t37.5 -46t33 -32l13 -11l-227 -224q-40 37 -79 75.5t-58 58.5l-19 20q-11 11 -25 33q-38 -59 -97.5 -102.5t-127.5 -63.5t-140 -23t-137.5 21t-117.5 65.5t-83 113t-31 162.5q0 84 28 154t72 116.5t106.5 83t122.5 57 t130 34.5t119.5 18.5t99.5 6.5v127q0 65 -21 97q-34 53 -121 53q-6 0 -16.5 -1t-40.5 -12t-56 -29.5t-56 -59.5t-48 -96l-294 27q0 60 22 119t67 113t108 95t151.5 65.5t190.5 24.5q100 0 181 -25t129.5 -61.5t81 -83t45 -86t12.5 -73.5v-589zM692 597q0 -86 70 -133 q66 -44 139 -22q84 25 114 123q14 45 14 101v162q-59 -2 -111 -12t-106.5 -33.5t-87 -71t-32.5 -114.5z" /> +<glyph unicode="&#xf271;" horiz-adv-x="1792" d="M1536 1280q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128zM1152 1376v-288q0 -14 9 -23t23 -9 h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM384 1376v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23zM1536 -128v1024h-1408v-1024h1408zM896 448h224q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-224 v-224q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v224h-224q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h224v224q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-224z" /> +<glyph unicode="&#xf272;" horiz-adv-x="1792" d="M1152 416v-64q0 -14 -9 -23t-23 -9h-576q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h576q14 0 23 -9t9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23 t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf273;" horiz-adv-x="1792" d="M1111 151l-46 -46q-9 -9 -22 -9t-23 9l-188 189l-188 -189q-10 -9 -23 -9t-22 9l-46 46q-9 9 -9 22t9 23l189 188l-189 188q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l188 -188l188 188q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23l-188 -188l188 -188q9 -10 9 -23t-9 -22z M128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280 q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf274;" horiz-adv-x="1792" d="M1303 572l-512 -512q-10 -9 -23 -9t-23 9l-288 288q-9 10 -9 23t9 22l46 46q9 9 22 9t23 -9l220 -220l444 444q10 9 23 9t22 -9l46 -46q9 -9 9 -22t-9 -23zM128 -128h1408v1024h-1408v-1024zM512 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23zM1280 1088v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288q0 -14 9 -23t23 -9h64q14 0 23 9t9 23zM1664 1152v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47 t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90z" /> +<glyph unicode="&#xf275;" horiz-adv-x="1792" d="M448 1536q26 0 45 -19t19 -45v-891l536 429q17 14 40 14q26 0 45 -19t19 -45v-379l536 429q17 14 40 14q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45v1664q0 26 19 45t45 19h384z" /> +<glyph unicode="&#xf276;" horiz-adv-x="1024" d="M512 448q66 0 128 15v-655q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v655q61 -15 128 -15zM512 1536q212 0 362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362t150 362t362 150zM512 1312q14 0 23 9t9 23t-9 23t-23 9q-146 0 -249 -103t-103 -249 q0 -14 9 -23t23 -9t23 9t9 23q0 119 84.5 203.5t203.5 84.5z" /> +<glyph unicode="&#xf277;" horiz-adv-x="1792" d="M1745 1239q10 -10 10 -23t-10 -23l-141 -141q-28 -28 -68 -28h-1344q-26 0 -45 19t-19 45v256q0 26 19 45t45 19h576v64q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-64h512q40 0 68 -28zM768 320h256v-512q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v512zM1600 768 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1344q-40 0 -68 28l-141 141q-10 10 -10 23t10 23l141 141q28 28 68 28h512v192h256v-192h576z" /> +<glyph unicode="&#xf278;" horiz-adv-x="2048" d="M2020 1525q28 -20 28 -53v-1408q0 -20 -11 -36t-29 -23l-640 -256q-24 -11 -48 0l-616 246l-616 -246q-10 -5 -24 -5q-19 0 -36 11q-28 20 -28 53v1408q0 20 11 36t29 23l640 256q24 11 48 0l616 -246l616 246q32 13 60 -6zM736 1390v-1270l576 -230v1270zM128 1173 v-1270l544 217v1270zM1920 107v1270l-544 -217v-1270z" /> +<glyph unicode="&#xf279;" horiz-adv-x="1792" d="M512 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472q0 20 17 28l480 256q7 4 15 4zM1760 1536q13 0 22.5 -9.5t9.5 -22.5v-1472q0 -20 -17 -28l-480 -256q-7 -4 -15 -4q-13 0 -22.5 9.5t-9.5 22.5v1472 q0 20 17 28l480 256q7 4 15 4zM640 1536q8 0 14 -3l512 -256q18 -10 18 -29v-1472q0 -13 -9.5 -22.5t-22.5 -9.5q-8 0 -14 3l-512 256q-18 10 -18 29v1472q0 13 9.5 22.5t22.5 9.5z" /> +<glyph unicode="&#xf27a;" horiz-adv-x="1792" d="M640 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1024 640q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1408 640q0 53 -37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-110 0 -211 18q-173 -173 -435 -229q-52 -10 -86 -13q-12 -1 -22 6t-13 18q-4 15 20 37q5 5 23.5 21.5t25.5 23.5t23.5 25.5t24 31.5t20.5 37 t20 48t14.5 57.5t12.5 72.5q-146 90 -229.5 216.5t-83.5 269.5q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5z" /> +<glyph unicode="&#xf27b;" horiz-adv-x="1792" d="M640 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1024 640q0 -53 -37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM1408 640q0 -53 -37.5 -90.5t-90.5 -37.5 t-90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5zM896 1152q-204 0 -381.5 -69.5t-282 -187.5t-104.5 -255q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5 t104.5 255t-104.5 255t-282 187.5t-381.5 69.5zM1792 640q0 -174 -120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5t32.5 51 t27 59t26 76q-157 89 -247.5 220t-90.5 281q0 130 71 248.5t191 204.5t286 136.5t348 50.5t348 -50.5t286 -136.5t191 -204.5t71 -248.5z" /> +<glyph unicode="&#xf27c;" horiz-adv-x="1024" d="M512 345l512 295v-591l-512 -296v592zM0 640v-591l512 296zM512 1527v-591l-512 -296v591zM512 936l512 295v-591z" /> +<glyph unicode="&#xf27d;" horiz-adv-x="1792" d="M1709 1018q-10 -236 -332 -651q-333 -431 -562 -431q-142 0 -240 263q-44 160 -132 482q-72 262 -157 262q-18 0 -127 -76l-77 98q24 21 108 96.5t130 115.5q156 138 241 146q95 9 153 -55.5t81 -203.5q44 -287 66 -373q55 -249 120 -249q51 0 154 161q101 161 109 246 q13 139 -109 139q-57 0 -121 -26q120 393 459 382q251 -8 236 -326z" /> +<glyph unicode="&#xf27e;" d="M0 1408h1536v-1536h-1536v1536zM1085 293l-221 631l221 297h-634l221 -297l-221 -631l317 -304z" /> +<glyph unicode="&#xf280;" d="M0 1408h1536v-1536h-1536v1536zM908 1088l-12 -33l75 -83l-31 -114l25 -25l107 57l107 -57l25 25l-31 114l75 83l-12 33h-95l-53 96h-32l-53 -96h-95zM641 925q32 0 44.5 -16t11.5 -63l174 21q0 55 -17.5 92.5t-50.5 56t-69 25.5t-85 7q-133 0 -199 -57.5t-66 -182.5v-72 h-96v-128h76q20 0 20 -8v-382q0 -14 -5 -20t-18 -7l-73 -7v-88h448v86l-149 14q-6 1 -8.5 1.5t-3.5 2.5t-0.5 4t1 7t0.5 10v387h191l38 128h-231q-6 0 -2 6t4 9v80q0 27 1.5 40.5t7.5 28t19.5 20t36.5 5.5zM1248 96v86l-54 9q-7 1 -9.5 2.5t-2.5 3t1 7.5t1 12v520h-275 l-23 -101l83 -22q23 -7 23 -27v-370q0 -14 -6 -18.5t-20 -6.5l-70 -9v-86h352z" /> +<glyph unicode="&#xf281;" horiz-adv-x="1792" d="M1792 690q0 -58 -29.5 -105.5t-79.5 -72.5q12 -46 12 -96q0 -155 -106.5 -287t-290.5 -208.5t-400 -76.5t-399.5 76.5t-290 208.5t-106.5 287q0 47 11 94q-51 25 -82 73.5t-31 106.5q0 82 58 140.5t141 58.5q85 0 145 -63q218 152 515 162l116 521q3 13 15 21t26 5 l369 -81q18 37 54 59.5t79 22.5q62 0 106 -43.5t44 -105.5t-44 -106t-106 -44t-105.5 43.5t-43.5 105.5l-334 74l-104 -472q300 -9 519 -160q58 61 143 61q83 0 141 -58.5t58 -140.5zM418 491q0 -62 43.5 -106t105.5 -44t106 44t44 106t-44 105.5t-106 43.5q-61 0 -105 -44 t-44 -105zM1228 136q11 11 11 26t-11 26q-10 10 -25 10t-26 -10q-41 -42 -121 -62t-160 -20t-160 20t-121 62q-11 10 -26 10t-25 -10q-11 -10 -11 -25.5t11 -26.5q43 -43 118.5 -68t122.5 -29.5t91 -4.5t91 4.5t122.5 29.5t118.5 68zM1225 341q62 0 105.5 44t43.5 106 q0 61 -44 105t-105 44q-62 0 -106 -43.5t-44 -105.5t44 -106t106 -44z" /> +<glyph unicode="&#xf282;" horiz-adv-x="1792" d="M69 741h1q16 126 58.5 241.5t115 217t167.5 176t223.5 117.5t276.5 43q231 0 414 -105.5t294 -303.5q104 -187 104 -442v-188h-1125q1 -111 53.5 -192.5t136.5 -122.5t189.5 -57t213 -3t208 46.5t173.5 84.5v-377q-92 -55 -229.5 -92t-312.5 -38t-316 53 q-189 73 -311.5 249t-124.5 372q-3 242 111 412t325 268q-48 -60 -78 -125.5t-46 -159.5h635q8 77 -8 140t-47 101.5t-70.5 66.5t-80.5 41t-75 20.5t-56 8.5l-22 1q-135 -5 -259.5 -44.5t-223.5 -104.5t-176 -140.5t-138 -163.5z" /> +<glyph unicode="&#xf283;" horiz-adv-x="2304" d="M0 32v608h2304v-608q0 -66 -47 -113t-113 -47h-1984q-66 0 -113 47t-47 113zM640 256v-128h384v128h-384zM256 256v-128h256v128h-256zM2144 1408q66 0 113 -47t47 -113v-224h-2304v224q0 66 47 113t113 47h1984z" /> +<glyph unicode="&#xf284;" horiz-adv-x="1792" d="M1549 857q55 0 85.5 -28.5t30.5 -83.5t-34 -82t-91 -27h-136v-177h-25v398h170zM1710 267l-4 -11l-5 -10q-113 -230 -330.5 -366t-474.5 -136q-182 0 -348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71q244 0 454.5 -124t329.5 -338l2 -4l8 -16 q-30 -15 -136.5 -68.5t-163.5 -84.5q-6 -3 -479 -268q384 -183 799 -366zM896 -234q250 0 462.5 132.5t322.5 357.5l-287 129q-72 -140 -206 -222t-292 -82q-151 0 -280 75t-204 204t-75 280t75 280t204 204t280 75t280 -73.5t204 -204.5l280 143q-116 208 -321 329 t-443 121q-119 0 -232.5 -31.5t-209 -87.5t-176.5 -137t-137 -176.5t-87.5 -209t-31.5 -232.5t31.5 -232.5t87.5 -209t137 -176.5t176.5 -137t209 -87.5t232.5 -31.5z" /> +<glyph unicode="&#xf285;" horiz-adv-x="1792" d="M1427 827l-614 386l92 151h855zM405 562l-184 116v858l1183 -743zM1424 697l147 -95v-858l-532 335zM1387 718l-500 -802h-855l356 571z" /> +<glyph unicode="&#xf286;" horiz-adv-x="1792" d="M640 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1152 528v224q0 16 -16 16h-96q-16 0 -16 -16v-224q0 -16 16 -16h96q16 0 16 16zM1664 496v-752h-640v320q0 80 -56 136t-136 56t-136 -56t-56 -136v-320h-640v752q0 16 16 16h96 q16 0 16 -16v-112h128v624q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 6 2.5 9.5t8.5 5t9.5 2t11.5 0t9 -0.5v391q-32 15 -32 50q0 23 16.5 39t38.5 16t38.5 -16t16.5 -39q0 -35 -32 -50v-17q45 10 83 10q21 0 59.5 -7.5t54.5 -7.5 q17 0 47 7.5t37 7.5q16 0 16 -16v-210q0 -15 -35 -21.5t-62 -6.5q-18 0 -54.5 7.5t-55.5 7.5q-40 0 -90 -12v-133q1 0 9 0.5t11.5 0t9.5 -2t8.5 -5t2.5 -9.5v-112h128v112q0 16 16 16h96q16 0 16 -16v-112h128v112q0 16 16 16h96q16 0 16 -16v-624h128v112q0 16 16 16h96 q16 0 16 -16z" /> +<glyph unicode="&#xf287;" horiz-adv-x="2304" d="M2288 731q16 -8 16 -27t-16 -27l-320 -192q-8 -5 -16 -5q-9 0 -16 4q-16 10 -16 28v128h-858q37 -58 83 -165q16 -37 24.5 -55t24 -49t27 -47t27 -34t31.5 -26t33 -8h96v96q0 14 9 23t23 9h320q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23v96h-96 q-32 0 -61 10t-51 23.5t-45 40.5t-37 46t-33.5 57t-28.5 57.5t-28 60.5q-23 53 -37 81.5t-36 65t-44.5 53.5t-46.5 17h-360q-22 -84 -91 -138t-157 -54q-106 0 -181 75t-75 181t75 181t181 75q88 0 157 -54t91 -138h104q24 0 46.5 17t44.5 53.5t36 65t37 81.5q19 41 28 60.5 t28.5 57.5t33.5 57t37 46t45 40.5t51 23.5t61 10h107q21 57 70 92.5t111 35.5q80 0 136 -56t56 -136t-56 -136t-136 -56q-62 0 -111 35.5t-70 92.5h-107q-17 0 -33 -8t-31.5 -26t-27 -34t-27 -47t-24 -49t-24.5 -55q-46 -107 -83 -165h1114v128q0 18 16 28t32 -1z" /> +<glyph unicode="&#xf288;" horiz-adv-x="1792" d="M1150 774q0 -56 -39.5 -95t-95.5 -39h-253v269h253q56 0 95.5 -39.5t39.5 -95.5zM1329 774q0 130 -91.5 222t-222.5 92h-433v-896h180v269h253q130 0 222 91.5t92 221.5zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348 t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="&#xf289;" horiz-adv-x="2304" d="M1645 438q0 59 -34 106.5t-87 68.5q-7 -45 -23 -92q-7 -24 -27.5 -38t-44.5 -14q-12 0 -24 3q-31 10 -45 38.5t-4 58.5q23 71 23 143q0 123 -61 227.5t-166 165.5t-228 61q-134 0 -247 -73t-167 -194q108 -28 188 -106q22 -23 22 -55t-22 -54t-54 -22t-55 22 q-75 75 -180 75q-106 0 -181 -74.5t-75 -180.5t75 -180.5t181 -74.5h1046q79 0 134.5 55.5t55.5 133.5zM1798 438q0 -142 -100.5 -242t-242.5 -100h-1046q-169 0 -289 119.5t-120 288.5q0 153 100 267t249 136q62 184 221 298t354 114q235 0 408.5 -158.5t196.5 -389.5 q116 -25 192.5 -118.5t76.5 -214.5zM2048 438q0 -175 -97 -319q-23 -33 -64 -33q-24 0 -43 13q-26 17 -32 48.5t12 57.5q71 104 71 233t-71 233q-18 26 -12 57t32 49t57.5 11.5t49.5 -32.5q97 -142 97 -318zM2304 438q0 -244 -134 -443q-23 -34 -64 -34q-23 0 -42 13 q-26 18 -32.5 49t11.5 57q108 164 108 358q0 195 -108 357q-18 26 -11.5 57.5t32.5 48.5q26 18 57 12t49 -33q134 -198 134 -442z" /> +<glyph unicode="&#xf28a;" d="M1500 -13q0 -89 -63 -152.5t-153 -63.5t-153.5 63.5t-63.5 152.5q0 90 63.5 153.5t153.5 63.5t153 -63.5t63 -153.5zM1267 268q-115 -15 -192.5 -102.5t-77.5 -205.5q0 -74 33 -138q-146 -78 -379 -78q-109 0 -201 21t-153.5 54.5t-110.5 76.5t-76 85t-44.5 83 t-23.5 66.5t-6 39.5q0 19 4.5 42.5t18.5 56t36.5 58t64 43.5t94.5 18t94 -17.5t63 -41t35.5 -53t17.5 -49t4 -33.5q0 -34 -23 -81q28 -27 82 -42t93 -17l40 -1q115 0 190 51t75 133q0 26 -9 48.5t-31.5 44.5t-49.5 41t-74 44t-93.5 47.5t-119.5 56.5q-28 13 -43 20 q-116 55 -187 100t-122.5 102t-72 125.5t-20.5 162.5q0 78 20.5 150t66 137.5t112.5 114t166.5 77t221.5 28.5q120 0 220 -26t164.5 -67t109.5 -94t64 -105.5t19 -103.5q0 -46 -15 -82.5t-36.5 -58t-48.5 -36t-49 -19.5t-39 -5h-8h-32t-39 5t-44 14t-41 28t-37 46t-24 70.5 t-10 97.5q-15 16 -59 25.5t-81 10.5l-37 1q-68 0 -117.5 -31t-70.5 -70t-21 -76q0 -24 5 -43t24 -46t53 -51t97 -53.5t150 -58.5q76 -25 138.5 -53.5t109 -55.5t83 -59t60.5 -59.5t41 -62.5t26.5 -62t14.5 -63.5t6 -62t1 -62.5z" /> +<glyph unicode="&#xf28b;" d="M704 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1152 352v576q0 14 -9 23t-23 9h-256q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h256q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103 t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf28c;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM864 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-192z" /> +<glyph unicode="&#xf28d;" d="M1088 352v576q0 14 -9 23t-23 9h-576q-14 0 -23 -9t-9 -23v-576q0 -14 9 -23t23 -9h576q14 0 23 9t9 23zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" /> +<glyph unicode="&#xf28e;" d="M768 1408q209 0 385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103zM768 96q148 0 273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73t-198 -198t-73 -273 t73 -273t198 -198t273 -73zM480 320q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h576q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-576z" /> +<glyph unicode="&#xf290;" horiz-adv-x="1792" d="M1757 128l35 -313q3 -28 -16 -50q-19 -21 -48 -21h-1664q-29 0 -48 21q-19 22 -16 50l35 313h1722zM1664 967l86 -775h-1708l86 775q3 24 21 40.5t43 16.5h256v-128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5v128h384v-128q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5v128h256q25 0 43 -16.5t21 -40.5zM1280 1152v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-256q0 -26 -19 -45t-45 -19t-45 19t-19 45v256q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5z" /> +<glyph unicode="&#xf291;" horiz-adv-x="2048" d="M1920 768q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5h-15l-115 -662q-8 -46 -44 -76t-82 -30h-1280q-46 0 -82 30t-44 76l-115 662h-15q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5h1792zM485 -32q26 2 43.5 22.5t15.5 46.5l-32 416q-2 26 -22.5 43.5 t-46.5 15.5t-43.5 -22.5t-15.5 -46.5l32 -416q2 -25 20.5 -42t43.5 -17h5zM896 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1280 32v416q0 26 -19 45t-45 19t-45 -19t-19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45zM1632 27l32 416 q2 26 -15.5 46.5t-43.5 22.5t-46.5 -15.5t-22.5 -43.5l-32 -416q-2 -26 15.5 -46.5t43.5 -22.5h5q25 0 43.5 17t20.5 42zM476 1244l-93 -412h-132l101 441q19 88 89 143.5t160 55.5h167q0 26 19 45t45 19h384q26 0 45 -19t19 -45h167q90 0 160 -55.5t89 -143.5l101 -441 h-132l-93 412q-11 44 -45.5 72t-79.5 28h-167q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45h-167q-45 0 -79.5 -28t-45.5 -72z" /> +<glyph unicode="&#xf292;" horiz-adv-x="1792" d="M991 512l64 256h-254l-64 -256h254zM1759 1016l-56 -224q-7 -24 -31 -24h-327l-64 -256h311q15 0 25 -12q10 -14 6 -28l-56 -224q-5 -24 -31 -24h-327l-81 -328q-7 -24 -31 -24h-224q-16 0 -26 12q-9 12 -6 28l78 312h-254l-81 -328q-7 -24 -31 -24h-225q-15 0 -25 12 q-9 12 -6 28l78 312h-311q-15 0 -25 12q-9 12 -6 28l56 224q7 24 31 24h327l64 256h-311q-15 0 -25 12q-10 14 -6 28l56 224q5 24 31 24h327l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h254l81 328q7 24 32 24h224q15 0 25 -12q9 -12 6 -28l-78 -312h311 q15 0 25 -12q9 -12 6 -28z" /> +<glyph unicode="&#xf293;" d="M841 483l148 -148l-149 -149zM840 1094l149 -149l-148 -148zM710 -130l464 464l-306 306l306 306l-464 464v-611l-255 255l-93 -93l320 -321l-320 -321l93 -93l255 255v-611zM1429 640q0 -209 -32 -365.5t-87.5 -257t-140.5 -162.5t-181.5 -86.5t-219.5 -24.5 t-219.5 24.5t-181.5 86.5t-140.5 162.5t-87.5 257t-32 365.5t32 365.5t87.5 257t140.5 162.5t181.5 86.5t219.5 24.5t219.5 -24.5t181.5 -86.5t140.5 -162.5t87.5 -257t32 -365.5z" /> +<glyph unicode="&#xf294;" horiz-adv-x="1024" d="M596 113l173 172l-173 172v-344zM596 823l173 172l-173 172v-344zM628 640l356 -356l-539 -540v711l-297 -296l-108 108l372 373l-372 373l108 108l297 -296v711l539 -540z" /> +<glyph unicode="&#xf295;" d="M1280 256q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM512 1024q0 52 -38 90t-90 38t-90 -38t-38 -90t38 -90t90 -38t90 38t38 90zM1536 256q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5t271.5 -112.5 t112.5 -271.5zM1440 1344q0 -20 -13 -38l-1056 -1408q-19 -26 -51 -26h-160q-26 0 -45 19t-19 45q0 20 13 38l1056 1408q19 26 51 26h160q26 0 45 -19t19 -45zM768 1024q0 -159 -112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5t112.5 271.5t271.5 112.5 t271.5 -112.5t112.5 -271.5z" /> +<glyph unicode="&#xf296;" horiz-adv-x="1792" d="M104 830l792 -1015l-868 630q-18 13 -25 34.5t0 42.5l101 308v0zM566 830h660l-330 -1015v0zM368 1442l198 -612h-462l198 612q8 23 33 23t33 -23zM1688 830l101 -308q7 -21 0 -42.5t-25 -34.5l-868 -630l792 1015v0zM1688 830h-462l198 612q8 23 33 23t33 -23z" /> +<glyph unicode="&#xf297;" horiz-adv-x="1792" d="M384 704h160v224h-160v-224zM1221 372v92q-104 -36 -243 -38q-135 -1 -259.5 46.5t-220.5 122.5l1 -96q88 -80 212 -128.5t272 -47.5q129 0 238 49zM640 704h640v224h-640v-224zM1792 736q0 -187 -99 -352q89 -102 89 -229q0 -157 -129.5 -268t-313.5 -111 q-122 0 -225 52.5t-161 140.5q-19 -1 -57 -1t-57 1q-58 -88 -161 -140.5t-225 -52.5q-184 0 -313.5 111t-129.5 268q0 127 89 229q-99 165 -99 352q0 209 120 385.5t326.5 279.5t449.5 103t449.5 -103t326.5 -279.5t120 -385.5z" /> +<glyph unicode="&#xf298;" d="M515 625v-128h-252v128h252zM515 880v-127h-252v127h252zM1273 369v-128h-341v128h341zM1273 625v-128h-672v128h672zM1273 880v-127h-672v127h672zM1408 20v1240q0 8 -6 14t-14 6h-32l-378 -256l-210 171l-210 -171l-378 256h-32q-8 0 -14 -6t-6 -14v-1240q0 -8 6 -14 t14 -6h1240q8 0 14 6t6 14zM553 1130l185 150h-406zM983 1130l221 150h-406zM1536 1260v-1240q0 -62 -43 -105t-105 -43h-1240q-62 0 -105 43t-43 105v1240q0 62 43 105t105 43h1240q62 0 105 -43t43 -105z" /> +<glyph unicode="&#xf299;" horiz-adv-x="1792" d="M896 720q-104 196 -160 278q-139 202 -347 318q-34 19 -70 36q-89 40 -94 32t34 -38l39 -31q62 -43 112.5 -93.5t94.5 -116.5t70.5 -113t70.5 -131q9 -17 13 -25q44 -84 84 -153t98 -154t115.5 -150t131 -123.5t148.5 -90.5q153 -66 154 -60q1 3 -49 37q-53 36 -81 57 q-77 58 -179 211t-185 310zM549 177q-76 60 -132.5 125t-98 143.5t-71 154.5t-58.5 186t-52 209t-60.5 252t-76.5 289q273 0 497.5 -36t379 -92t271 -144.5t185.5 -172.5t110 -198.5t56 -199.5t12.5 -198.5t-9.5 -173t-20 -143.5t-13 -107l323 -327h-104l-281 285 q-22 -2 -91.5 -14t-121.5 -19t-138 -6t-160.5 17t-167.5 59t-179 111z" /> +<glyph unicode="&#xf29a;" horiz-adv-x="1792" d="M1374 879q-6 26 -28.5 39.5t-48.5 7.5q-261 -62 -401 -62t-401 62q-26 6 -48.5 -7.5t-28.5 -39.5t7.5 -48.5t39.5 -28.5q194 -46 303 -58q-2 -158 -15.5 -269t-26.5 -155.5t-41 -115.5l-9 -21q-10 -25 1 -49t36 -34q9 -4 23 -4q44 0 60 41l8 20q54 139 71 259h42 q17 -120 71 -259l8 -20q16 -41 60 -41q14 0 23 4q25 10 36 34t1 49l-9 21q-28 71 -41 115.5t-26.5 155.5t-15.5 269q109 12 303 58q26 6 39.5 28.5t7.5 48.5zM1024 1024q0 53 -37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5t37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5z M1600 640q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5t-225 150t-150 225t-55.5 273.5t55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5zM896 1408q-156 0 -298 -61t-245 -164t-164 -245t-61 -298t61 -298 t164 -245t245 -164t298 -61t298 61t245 164t164 245t61 298t-61 298t-164 245t-245 164t-298 61zM1792 640q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348t71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348z" /> +<glyph unicode="&#xf29b;" d="M1438 723q34 -35 29 -82l-44 -551q-4 -42 -34.5 -70t-71.5 -28q-6 0 -9 1q-44 3 -72.5 36.5t-25.5 77.5l35 429l-143 -8q55 -113 55 -240q0 -216 -148 -372l-137 137q91 101 91 235q0 145 -102.5 248t-247.5 103q-134 0 -236 -92l-137 138q120 114 284 141l264 300 l-149 87l-181 -161q-33 -30 -77 -27.5t-73 35.5t-26.5 77t34.5 73l239 213q26 23 60 26.5t64 -14.5l488 -283q36 -21 48 -68q17 -67 -26 -117l-205 -232l371 20q49 3 83 -32zM1240 1180q-74 0 -126 52t-52 126t52 126t126 52t126.5 -52t52.5 -126t-52.5 -126t-126.5 -52z M613 -62q106 0 196 61l139 -139q-146 -116 -335 -116q-148 0 -273.5 73t-198.5 198t-73 273q0 188 116 336l139 -139q-60 -88 -60 -197q0 -145 102.5 -247.5t247.5 -102.5z" /> +<glyph unicode="&#xf29c;" d="M880 336v-160q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v160q0 14 9 23t23 9h160q14 0 23 -9t9 -23zM1136 832q0 -50 -15 -90t-45.5 -69t-52 -44t-59.5 -36q-32 -18 -46.5 -28t-26 -24t-11.5 -29v-32q0 -14 -9 -23t-23 -9h-160q-14 0 -23 9t-9 23v68q0 35 10.5 64.5 t24 47.5t39 35.5t41 25.5t44.5 21q53 25 75 43t22 49q0 42 -43.5 71.5t-95.5 29.5q-56 0 -95 -27q-29 -20 -80 -83q-9 -12 -25 -12q-11 0 -19 6l-108 82q-10 7 -12 20t5 23q122 192 349 192q129 0 238.5 -89.5t109.5 -214.5zM768 1280q-130 0 -248.5 -51t-204 -136.5 t-136.5 -204t-51 -248.5t51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5t-51 248.5t-136.5 204t-204 136.5t-248.5 51zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5 t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf29d;" horiz-adv-x="1408" d="M366 1225q-64 0 -110 45.5t-46 110.5q0 64 46 109.5t110 45.5t109.5 -45.5t45.5 -109.5q0 -65 -45.5 -110.5t-109.5 -45.5zM917 583q0 -50 -30 -67.5t-63.5 -6.5t-47.5 34l-367 438q-7 12 -14 15.5t-11 1.5l-3 -3q-7 -8 4 -21l122 -139l1 -354l-161 -457 q-67 -192 -92 -234q-16 -26 -28 -32q-50 -26 -103 -1q-29 13 -41.5 43t-9.5 57q2 17 197 618l5 416l-85 -164l35 -222q4 -24 -1 -42t-14 -27.5t-19 -16t-17 -7.5l-7 -2q-19 -3 -34.5 3t-24 16t-14 22t-7.5 19.5t-2 9.5l-46 299l211 381q23 34 113 34q75 0 107 -40l424 -521 q7 -5 14 -17l3 -3l-1 -1q7 -13 7 -29zM514 433q43 -113 88.5 -225t69.5 -168l24 -55q36 -93 42 -125q11 -70 -36 -97q-35 -22 -66 -16t-51 22t-29 35h-1q-6 16 -8 25l-124 351zM1338 -159q31 -49 31 -57q0 -5 -3 -7q-9 -5 -14.5 0.5t-15.5 26t-16 30.5q-114 172 -423 661 q3 -1 7 1t7 4l3 2q11 9 11 17z" /> +<glyph unicode="&#xf29e;" horiz-adv-x="2304" d="M504 542h171l-1 265zM1530 641q0 87 -50.5 140t-146.5 53h-54v-388h52q91 0 145 57t54 138zM956 1018l1 -756q0 -14 -9.5 -24t-23.5 -10h-216q-14 0 -23.5 10t-9.5 24v62h-291l-55 -81q-10 -15 -28 -15h-267q-21 0 -30.5 18t3.5 35l556 757q9 14 27 14h332q14 0 24 -10 t10 -24zM1783 641q0 -193 -125.5 -303t-324.5 -110h-270q-14 0 -24 10t-10 24v756q0 14 10 24t24 10h268q200 0 326 -109t126 -302zM1939 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5 t-7.5 60t-20 91.5t-41 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2123 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-45 -108t-74 -102.5h-51q38 45 66.5 104.5t41.5 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5 h43q41 -47 72 -107t45.5 -111.5t23 -96t10.5 -70.5zM2304 640q0 -11 -0.5 -29t-8 -71.5t-21.5 -102t-44.5 -108t-73.5 -102.5h-51q38 45 66 104.5t41 112t21 98t9 72.5l1 27q0 8 -0.5 22.5t-7.5 60t-19.5 91.5t-40.5 111.5t-66 124.5h43q41 -47 72 -107t45.5 -111.5t23 -96 t9.5 -70.5z" /> +<glyph unicode="&#xf2a0;" horiz-adv-x="1408" d="M617 -153q0 11 -13 58t-31 107t-20 69q-1 4 -5 26.5t-8.5 36t-13.5 21.5q-15 14 -51 14q-23 0 -70 -5.5t-71 -5.5q-34 0 -47 11q-6 5 -11 15.5t-7.5 20t-6.5 24t-5 18.5q-37 128 -37 255t37 255q1 4 5 18.5t6.5 24t7.5 20t11 15.5q13 11 47 11q24 0 71 -5.5t70 -5.5 q36 0 51 14q9 8 13.5 21.5t8.5 36t5 26.5q2 9 20 69t31 107t13 58q0 22 -43.5 52.5t-75.5 42.5q-20 8 -45 8q-34 0 -98 -18q-57 -17 -96.5 -40.5t-71 -66t-46 -70t-45.5 -94.5q-6 -12 -9 -19q-49 -107 -68 -216t-19 -244t19 -244t68 -216q56 -122 83 -161q63 -91 179 -127 l6 -2q64 -18 98 -18q25 0 45 8q32 12 75.5 42.5t43.5 52.5zM776 760q-26 0 -45 19t-19 45.5t19 45.5q37 37 37 90q0 52 -37 91q-19 19 -19 45t19 45t45 19t45 -19q75 -75 75 -181t-75 -181q-21 -19 -45 -19zM957 579q-27 0 -45 19q-19 19 -19 45t19 45q112 114 112 272 t-112 272q-19 19 -19 45t19 45t45 19t45 -19q150 -150 150 -362t-150 -362q-18 -19 -45 -19zM1138 398q-27 0 -45 19q-19 19 -19 45t19 45q90 91 138.5 208t48.5 245t-48.5 245t-138.5 208q-19 19 -19 45t19 45t45 19t45 -19q109 -109 167 -249t58 -294t-58 -294t-167 -249 q-18 -19 -45 -19z" /> +<glyph unicode="&#xf2a1;" horiz-adv-x="2176" d="M192 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM704 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 352 q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 352q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1472 864q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 864 q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM1984 1376q-66 0 -113 -47t-47 -113t47 -113t113 -47t113 47t47 113t-47 113t-113 47zM384 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 192q0 -80 -56 -136 t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM384 1216q0 -80 -56 -136t-136 -56 t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 192q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM896 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 192q0 -80 -56 -136t-136 -56t-136 56 t-56 136t56 136t136 56t136 -56t56 -136zM1664 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM2176 704q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136zM1664 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136 t56 136t136 56t136 -56t56 -136zM2176 1216q0 -80 -56 -136t-136 -56t-136 56t-56 136t56 136t136 56t136 -56t56 -136z" /> +<glyph unicode="&#xf2a2;" horiz-adv-x="1792" d="M128 -192q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM320 0q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45zM365 365l256 -256l-90 -90l-256 256zM704 384q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45t45 19t45 -19t19 -45z M1411 704q0 -59 -11.5 -108.5t-37.5 -93.5t-44 -67.5t-53 -64.5q-31 -35 -45.5 -54t-33.5 -50t-26.5 -64t-7.5 -74q0 -159 -112.5 -271.5t-271.5 -112.5q-26 0 -45 19t-19 45t19 45t45 19q106 0 181 75t75 181q0 57 11.5 105.5t37 91t43.5 66.5t52 63q40 46 59.5 72 t37.5 74.5t18 103.5q0 185 -131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 117 45.5 223.5t123 184t184 123t223.5 45.5t223.5 -45.5t184 -123t123 -184t45.5 -223.5zM896 576q0 -26 -19 -45t-45 -19t-45 19t-19 45t19 45 t45 19t45 -19t19 -45zM1184 704q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 93 -65.5 158.5t-158.5 65.5q-92 0 -158 -65.5t-66 -158.5q0 -26 -19 -45t-45 -19t-45 19t-19 45q0 146 103 249t249 103t249 -103t103 -249zM1578 993q10 -25 -1 -49t-36 -34q-9 -4 -23 -4 q-19 0 -35.5 11t-23.5 30q-68 178 -224 295q-21 16 -25 42t12 47q17 21 43 25t47 -12q183 -137 266 -351zM1788 1074q9 -25 -1.5 -49t-35.5 -34q-11 -4 -23 -4q-44 0 -60 41q-92 238 -297 393q-22 16 -25.5 42t12.5 47q16 22 42 25.5t47 -12.5q235 -175 341 -449z" /> +<glyph unicode="&#xf2a3;" horiz-adv-x="2304" d="M1032 576q-59 2 -84 55q-17 34 -48 53.5t-68 19.5q-53 0 -90.5 -37.5t-37.5 -90.5q0 -56 36 -89l10 -8q34 -31 82 -31q37 0 68 19.5t48 53.5q25 53 84 55zM1600 704q0 56 -36 89l-10 8q-34 31 -82 31q-37 0 -68 -19.5t-48 -53.5q-25 -53 -84 -55q59 -2 84 -55 q17 -34 48 -53.5t68 -19.5q53 0 90.5 37.5t37.5 90.5zM1174 925q-17 -35 -55 -48t-73 4q-62 31 -134 31q-51 0 -99 -17q3 0 9.5 0.5t9.5 0.5q92 0 170.5 -50t118.5 -133q17 -36 3.5 -73.5t-49.5 -54.5q-18 -9 -39 -9q21 0 39 -9q36 -17 49.5 -54.5t-3.5 -73.5 q-40 -83 -118.5 -133t-170.5 -50h-6q-16 2 -44 4l-290 27l-239 -120q-14 -7 -29 -7q-40 0 -57 35l-160 320q-11 23 -4 47.5t29 37.5l209 119l148 267q17 155 91.5 291.5t195.5 236.5q31 25 70.5 21.5t64.5 -34.5t21.5 -70t-34.5 -65q-70 -59 -117 -128q123 84 267 101 q40 5 71.5 -19t35.5 -64q5 -40 -19 -71.5t-64 -35.5q-84 -10 -159 -55q46 10 99 10q115 0 218 -50q36 -18 49 -55.5t-5 -73.5zM2137 1085l160 -320q11 -23 4 -47.5t-29 -37.5l-209 -119l-148 -267q-17 -155 -91.5 -291.5t-195.5 -236.5q-26 -22 -61 -22q-45 0 -74 35 q-25 31 -21.5 70t34.5 65q70 59 117 128q-123 -84 -267 -101q-4 -1 -12 -1q-36 0 -63.5 24t-31.5 60q-5 40 19 71.5t64 35.5q84 10 159 55q-46 -10 -99 -10q-115 0 -218 50q-36 18 -49 55.5t5 73.5q17 35 55 48t73 -4q62 -31 134 -31q51 0 99 17q-3 0 -9.5 -0.5t-9.5 -0.5 q-92 0 -170.5 50t-118.5 133q-17 36 -3.5 73.5t49.5 54.5q18 9 39 9q-21 0 -39 9q-36 17 -49.5 54.5t3.5 73.5q40 83 118.5 133t170.5 50h6h1q14 -2 42 -4l291 -27l239 120q14 7 29 7q40 0 57 -35z" /> +<glyph unicode="&#xf2a4;" horiz-adv-x="1792" d="M1056 704q0 -26 19 -45t45 -19t45 19t19 45q0 146 -103 249t-249 103t-249 -103t-103 -249q0 -26 19 -45t45 -19t45 19t19 45q0 93 66 158.5t158 65.5t158 -65.5t66 -158.5zM835 1280q-117 0 -223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5q0 -26 19 -45t45 -19t45 19 t19 45q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -55 -18 -103.5t-37.5 -74.5t-59.5 -72q-34 -39 -52 -63t-43.5 -66.5t-37 -91t-11.5 -105.5q0 -106 -75 -181t-181 -75q-26 0 -45 -19t-19 -45t19 -45t45 -19q159 0 271.5 112.5t112.5 271.5q0 41 7.5 74 t26.5 64t33.5 50t45.5 54q35 41 53 64.5t44 67.5t37.5 93.5t11.5 108.5q0 117 -45.5 223.5t-123 184t-184 123t-223.5 45.5zM591 561l226 -226l-579 -579q-12 -12 -29 -12t-29 12l-168 168q-12 12 -12 29t12 29zM1612 1524l168 -168q12 -12 12 -29t-12 -30l-233 -233 l-26 -25l-71 -71q-66 153 -195 258l91 91l207 207q13 12 30 12t29 -12z" /> +<glyph unicode="&#xf2a5;" d="M866 1021q0 -27 -13 -94q-11 -50 -31.5 -150t-30.5 -150q-2 -11 -4.5 -12.5t-13.5 -2.5q-20 -2 -31 -2q-58 0 -84 49.5t-26 113.5q0 88 35 174t103 124q28 14 51 14q28 0 36.5 -16.5t8.5 -47.5zM1352 597q0 14 -39 75.5t-52 66.5q-21 8 -34 8q-91 0 -226 -77l-2 2 q3 22 27.5 135t24.5 178q0 233 -242 233q-24 0 -68 -6q-94 -17 -168.5 -89.5t-111.5 -166.5t-37 -189q0 -146 80.5 -225t227.5 -79q25 0 25 -3t-1 -5q-4 -34 -26 -117q-14 -52 -51.5 -101t-82.5 -49q-42 0 -42 47q0 24 10.5 47.5t25 39.5t29.5 28.5t26 20t11 8.5q0 3 -7 10 q-24 22 -58.5 36.5t-65.5 14.5q-35 0 -63.5 -34t-41 -75t-12.5 -75q0 -88 51.5 -142t138.5 -54q82 0 155 53t117.5 126t65.5 153q6 22 15.5 66.5t14.5 66.5q3 12 14 18q118 60 227 60q48 0 127 -18q1 -1 4 -1q5 0 9.5 4.5t4.5 8.5zM1536 1120v-960q0 -119 -84.5 -203.5 t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf2a6;" horiz-adv-x="1535" d="M744 1231q0 24 -2 38.5t-8.5 30t-21 23t-37.5 7.5q-39 0 -78 -23q-105 -58 -159 -190.5t-54 -269.5q0 -44 8.5 -85.5t26.5 -80.5t52.5 -62.5t81.5 -23.5q4 0 18 -0.5t20 0t16 3t15 8.5t7 16q16 77 48 231.5t48 231.5q19 91 19 146zM1498 575q0 -7 -7.5 -13.5t-15.5 -6.5 l-6 1q-22 3 -62 11t-72 12.5t-63 4.5q-167 0 -351 -93q-15 -8 -21 -27q-10 -36 -24.5 -105.5t-22.5 -100.5q-23 -91 -70 -179.5t-112.5 -164.5t-154.5 -123t-185 -47q-135 0 -214.5 83.5t-79.5 219.5q0 53 19.5 117t63 116.5t97.5 52.5q38 0 120 -33.5t83 -61.5 q0 -1 -16.5 -12.5t-39.5 -31t-46 -44.5t-39 -61t-16 -74q0 -33 16.5 -53t48.5 -20q45 0 85 31.5t66.5 78t48 105.5t32.5 107t16 90v9q0 2 -3.5 3.5t-8.5 1.5h-10t-10 -0.5t-6 -0.5q-227 0 -352 122.5t-125 348.5q0 108 34.5 221t96 210t156 167.5t204.5 89.5q52 9 106 9 q374 0 374 -360q0 -98 -38 -273t-43 -211l3 -3q101 57 182.5 88t167.5 31q22 0 53 -13q19 -7 80 -102.5t61 -116.5z" /> +<glyph unicode="&#xf2a7;" horiz-adv-x="1664" d="M831 863q32 0 59 -18l222 -148q61 -40 110 -97l146 -170q40 -46 29 -106l-72 -413q-6 -32 -29.5 -53.5t-55.5 -25.5l-527 -56l-352 -32h-9q-39 0 -67.5 28t-28.5 68q0 37 27 64t65 32l260 32h-448q-41 0 -69.5 30t-26.5 71q2 39 32 65t69 26l442 1l-521 64q-41 5 -66 37 t-19 73q6 35 34.5 57.5t65.5 22.5h10l481 -60l-351 94q-38 10 -62 41.5t-18 68.5q6 36 33 58.5t62 22.5q6 0 20 -2l448 -96l217 -37q1 0 3 -0.5t3 -0.5q23 0 30.5 23t-12.5 36l-186 125q-35 23 -42 63.5t18 73.5q27 38 76 38zM761 661l186 -125l-218 37l-5 2l-36 38 l-238 262q-1 1 -2.5 3.5t-2.5 3.5q-24 31 -18.5 70t37.5 64q31 23 68 17.5t64 -33.5l142 -147l-4 -4t-5 -4q-32 -45 -23 -99t55 -85zM1648 1115l15 -266q4 -73 -11 -147l-48 -219q-12 -59 -67 -87l-106 -54q2 62 -39 109l-146 170q-53 61 -117 103l-222 148q-34 23 -76 23 q-51 0 -88 -37l-235 312q-25 33 -18 73.5t41 63.5q33 22 71.5 14t62.5 -40l266 -352l-262 455q-21 35 -10.5 75t47.5 59q35 18 72.5 6t57.5 -46l241 -420l-136 337q-15 35 -4.5 74t44.5 56q37 19 76 6t56 -51l193 -415l101 -196q8 -15 23 -17.5t27 7.5t11 26l-12 224 q-2 41 26 71t69 31q39 0 67 -28.5t30 -67.5z" /> +<glyph unicode="&#xf2a8;" horiz-adv-x="1792" d="M335 180q-2 0 -6 2q-86 57 -168.5 145t-139.5 180q-21 30 -21 69q0 9 2 19t4 18t7 18t8.5 16t10.5 17t10 15t12 15.5t11 14.5q184 251 452 365q-110 198 -110 211q0 19 17 29q116 64 128 64q18 0 28 -16l124 -229q92 19 192 19q266 0 497.5 -137.5t378.5 -369.5 q20 -31 20 -69t-20 -69q-91 -142 -218.5 -253.5t-278.5 -175.5q110 -198 110 -211q0 -20 -17 -29q-116 -64 -127 -64q-19 0 -29 16l-124 229l-64 119l-444 820l7 7q-58 -24 -99 -47q3 -5 127 -234t243 -449t119 -223q0 -7 -9 -9q-13 -3 -72 -3q-57 0 -60 7l-456 841 q-39 -28 -82 -68q24 -43 214 -393.5t190 -354.5q0 -10 -11 -10q-14 0 -82.5 22t-72.5 28l-106 197l-224 413q-44 -53 -78 -106q2 -3 18 -25t23 -34l176 -327q0 -10 -10 -10zM1165 282l49 -91q273 111 450 385q-180 277 -459 389q67 -64 103 -148.5t36 -176.5 q0 -106 -47 -200.5t-132 -157.5zM848 896q0 -20 14 -34t34 -14q86 0 147 -61t61 -147q0 -20 14 -34t34 -14t34 14t14 34q0 126 -89 215t-215 89q-20 0 -34 -14t-14 -34zM1214 961l-9 4l7 -7z" /> +<glyph unicode="&#xf2a9;" horiz-adv-x="1280" d="M1050 430q0 -215 -147 -374q-148 -161 -378 -161q-232 0 -378 161q-147 159 -147 374q0 147 68 270.5t189 196.5t268 73q96 0 182 -31q-32 -62 -39 -126q-66 28 -143 28q-167 0 -280.5 -123t-113.5 -291q0 -170 112.5 -288.5t281.5 -118.5t281 118.5t112 288.5 q0 89 -32 166q66 13 123 49q41 -98 41 -212zM846 619q0 -192 -79.5 -345t-238.5 -253l-14 -1q-29 0 -62 5q83 32 146.5 102.5t99.5 154.5t58.5 189t30 192.5t7.5 178.5q0 69 -3 103q55 -160 55 -326zM791 947v-2q-73 214 -206 440q88 -59 142.5 -186.5t63.5 -251.5z M1035 744q-83 0 -160 75q218 120 290 247q19 37 21 56q-42 -94 -139.5 -166.5t-204.5 -97.5q-35 54 -35 113q0 37 17 79t43 68q46 44 157 74q59 16 106 58.5t74 100.5q74 -105 74 -253q0 -109 -24 -170q-32 -77 -88.5 -130.5t-130.5 -53.5z" /> +<glyph unicode="&#xf2aa;" d="M1050 495q0 78 -28 147q-41 -25 -85 -34q22 -50 22 -114q0 -117 -77 -198.5t-193 -81.5t-193.5 81.5t-77.5 198.5q0 115 78 199.5t193 84.5q53 0 98 -19q4 43 27 87q-60 21 -125 21q-154 0 -257.5 -108.5t-103.5 -263.5t103.5 -261t257.5 -106t257.5 106.5t103.5 260.5z M872 850q2 -24 2 -71q0 -63 -5 -123t-20.5 -132.5t-40.5 -130t-68.5 -106t-100.5 -70.5q21 -3 42 -3h10q219 139 219 411q0 116 -38 225zM872 850q-4 80 -44 171.5t-98 130.5q92 -156 142 -302zM1207 955q0 102 -51 174q-41 -86 -124 -109q-69 -19 -109 -53.5t-40 -99.5 q0 -40 24 -77q74 17 140.5 67t95.5 115q-4 -52 -74.5 -111.5t-138.5 -97.5q52 -52 110 -52q51 0 90 37t60 90q17 43 17 117zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5 t84.5 -203.5z" /> +<glyph unicode="&#xf2ab;" d="M1279 388q0 22 -22 27q-67 15 -118 59t-80 108q-7 19 -7 25q0 15 19.5 26t43 17t43 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-12 0 -32 -8t-31 -8q-4 0 -12 2q5 95 5 114q0 79 -17 114q-36 78 -103 121.5t-152 43.5q-199 0 -275 -165q-17 -35 -17 -114q0 -19 5 -114 q-4 -2 -14 -2q-12 0 -32 7.5t-30 7.5q-21 0 -38.5 -12t-17.5 -32q0 -21 19.5 -35.5t43 -20.5t43 -17t19.5 -26q0 -6 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -46 137 -68q2 -5 6 -26t11.5 -30.5t23.5 -9.5q12 0 37.5 4.5t39.5 4.5q35 0 67 -15t54 -32.5t57.5 -32.5 t76.5 -15q43 0 79 15t57.5 32.5t53.5 32.5t67 15q14 0 39.5 -4t38.5 -4q16 0 23 10t11 30t6 25q137 22 137 68zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5 t103 -385.5z" /> +<glyph unicode="&#xf2ac;" horiz-adv-x="1664" d="M848 1408q134 1 240.5 -68.5t163.5 -192.5q27 -58 27 -179q0 -47 -9 -191q14 -7 28 -7q18 0 51 13.5t51 13.5q29 0 56 -18t27 -46q0 -32 -31.5 -54t-69 -31.5t-69 -29t-31.5 -47.5q0 -15 12 -43q37 -82 102.5 -150t144.5 -101q28 -12 80 -23q28 -6 28 -35 q0 -70 -219 -103q-7 -11 -11 -39t-14 -46.5t-33 -18.5q-20 0 -62 6.5t-64 6.5q-37 0 -62 -5q-32 -5 -63 -22.5t-58 -38t-58 -40.5t-76 -33.5t-99 -13.5q-52 0 -96.5 13.5t-75 33.5t-57.5 40.5t-58 38t-62 22.5q-26 5 -63 5q-24 0 -65.5 -7.5t-58.5 -7.5q-25 0 -35 18.5 t-14 47.5t-11 40q-219 33 -219 103q0 29 28 35q52 11 80 23q78 32 144.5 101t102.5 150q12 28 12 43q0 28 -31.5 47.5t-69.5 29.5t-69.5 31.5t-31.5 52.5q0 27 26 45.5t55 18.5q15 0 48 -13t53 -13q18 0 32 7q-9 142 -9 190q0 122 27 180q64 137 172 198t264 63z" /> +<glyph unicode="&#xf2ad;" d="M1280 388q0 22 -22 27q-67 14 -118 58t-80 109q-7 14 -7 25q0 15 19.5 26t42.5 17t42.5 20.5t19.5 36.5q0 19 -18.5 31.5t-38.5 12.5q-11 0 -31 -8t-32 -8q-4 0 -12 2q5 63 5 115q0 78 -17 114q-36 78 -102.5 121.5t-152.5 43.5q-198 0 -275 -165q-18 -38 -18 -115 q0 -38 6 -114q-10 -2 -15 -2q-11 0 -31.5 8t-30.5 8q-20 0 -37.5 -12.5t-17.5 -32.5q0 -21 19.5 -35.5t42.5 -20.5t42.5 -17t19.5 -26q0 -11 -7 -25q-64 -138 -198 -167q-22 -5 -22 -27q0 -47 138 -69q2 -5 6 -26t11 -30.5t23 -9.5q13 0 38.5 5t38.5 5q35 0 67.5 -15 t54.5 -32.5t57.5 -32.5t76.5 -15q43 0 79 15t57.5 32.5t54 32.5t67.5 15q13 0 39 -4.5t39 -4.5q15 0 22.5 9.5t11.5 31t5 24.5q138 22 138 69zM1536 1120v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5v960q0 119 84.5 203.5t203.5 84.5h960 q119 0 203.5 -84.5t84.5 -203.5z" /> +<glyph unicode="&#xf2ae;" horiz-adv-x="2304" d="M2304 1536q-69 -46 -125 -92t-89 -81t-59.5 -71.5t-37.5 -57.5t-22 -44.5t-14 -29.5q-10 -18 -35.5 -136.5t-48.5 -164.5q-15 -29 -50 -60.5t-67.5 -50.5t-72.5 -41t-48 -28q-47 -31 -151 -231q-341 14 -630 -158q-92 -53 -303 -179q47 16 86 31t55 22l15 7 q71 27 163 64.5t133.5 53.5t108 34.5t142.5 31.5q186 31 465 -7q1 0 10 -3q11 -6 14 -17t-3 -22l-194 -345q-15 -29 -47 -22q-128 24 -354 24q-146 0 -402 -44.5t-392 -46.5q-82 -1 -149 13t-107 37t-61 40t-33 34l-1 1v2q0 6 6 6q138 0 371 55q192 366 374.5 524t383.5 158 q5 0 14.5 -0.5t38 -5t55 -12t61.5 -24.5t63 -39.5t54 -59t40 -82.5l102 177q2 4 21 42.5t44.5 86.5t61 109.5t84 133.5t100.5 137q66 82 128 141.5t121.5 96.5t92.5 53.5t88 39.5z" /> +<glyph unicode="&#xf2b0;" d="M1322 640q0 -45 -5 -76l-236 14l224 -78q-19 -73 -58 -141l-214 103l177 -158q-44 -61 -107 -108l-157 178l103 -215q-61 -37 -140 -59l-79 228l14 -240q-38 -6 -76 -6t-76 6l14 238l-78 -226q-74 19 -140 59l103 215l-157 -178q-59 43 -108 108l178 158l-214 -104 q-39 69 -58 141l224 79l-237 -14q-5 42 -5 76q0 35 5 77l238 -14l-225 79q19 73 58 140l214 -104l-177 159q46 61 107 108l158 -178l-103 215q67 39 140 58l77 -224l-13 236q36 6 75 6q38 0 76 -6l-14 -237l78 225q74 -19 140 -59l-103 -214l158 178q61 -47 107 -108 l-177 -159l213 104q37 -62 58 -141l-224 -78l237 14q5 -31 5 -77zM1352 640q0 160 -78.5 295.5t-213 214t-292.5 78.5q-119 0 -227 -46.5t-186.5 -125t-124.5 -187.5t-46 -229q0 -119 46 -228t124.5 -187.5t186.5 -125t227 -46.5q158 0 292.5 78.5t213 214t78.5 294.5z M1425 1023v-766l-657 -383l-657 383v766l657 383zM768 -183l708 412v823l-708 411l-708 -411v-823zM1536 1088v-896l-768 -448l-768 448v896l768 448z" /> +<glyph unicode="&#xf2b1;" horiz-adv-x="1664" d="M339 1318h691l-26 -72h-665q-110 0 -188.5 -79t-78.5 -189v-771q0 -95 60.5 -169.5t153.5 -93.5q23 -5 98 -5v-72h-45q-140 0 -239.5 100t-99.5 240v771q0 140 99.5 240t239.5 100zM1190 1536h247l-482 -1294q-23 -61 -40.5 -103.5t-45 -98t-54 -93.5t-64.5 -78.5 t-79.5 -65t-95.5 -41t-116 -18.5v195q163 26 220 182q20 52 20 105q0 54 -20 106l-285 733h228l187 -585zM1664 978v-1111h-795q37 55 45 73h678v1038q0 85 -49.5 155t-129.5 99l25 67q101 -34 163.5 -123.5t62.5 -197.5z" /> +<glyph unicode="&#xf2b2;" horiz-adv-x="1792" d="M852 1227q0 -29 -17 -52.5t-45 -23.5t-45 23.5t-17 52.5t17 52.5t45 23.5t45 -23.5t17 -52.5zM688 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50 -21.5t-20 -51.5v-114q0 -30 20.5 -52t49.5 -22q30 0 50.5 22t20.5 52zM860 -149v114q0 30 -20 51.5t-50 21.5t-50.5 -21.5 t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22q29 0 49.5 22t20.5 52zM1034 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1208 -149v114q0 30 -20.5 51.5t-50.5 21.5t-50.5 -21.5t-20.5 -51.5v-114 q0 -30 20.5 -52t50.5 -22t50.5 22t20.5 52zM1476 535q-84 -160 -232 -259.5t-323 -99.5q-123 0 -229.5 51.5t-178.5 137t-113 197.5t-41 232q0 88 21 174q-104 -175 -104 -390q0 -162 65 -312t185 -251q30 57 91 57q56 0 86 -50q32 50 87 50q56 0 86 -50q32 50 87 50t87 -50 q30 50 86 50q28 0 52.5 -15.5t37.5 -40.5q112 94 177 231.5t73 287.5zM1326 564q0 75 -72 75q-17 0 -47 -6q-95 -19 -149 -19q-226 0 -226 243q0 86 30 204q-83 -127 -83 -275q0 -150 89 -260.5t235 -110.5q111 0 210 70q13 48 13 79zM884 1223q0 50 -32 89.5t-81 39.5 t-81 -39.5t-32 -89.5q0 -51 31.5 -90.5t81.5 -39.5t81.5 39.5t31.5 90.5zM1513 884q0 96 -37.5 179t-113 137t-173.5 54q-77 0 -149 -35t-127 -94q-48 -159 -48 -268q0 -104 45.5 -157t147.5 -53q53 0 142 19q36 6 53 6q51 0 77.5 -28t26.5 -80q0 -26 -4 -46 q75 68 117.5 165.5t42.5 200.5zM1792 667q0 -111 -33.5 -249.5t-93.5 -204.5q-58 -64 -195 -142.5t-228 -104.5l-4 -1v-114q0 -43 -29.5 -75t-72.5 -32q-56 0 -86 50q-32 -50 -87 -50t-87 50q-30 -50 -86 -50q-55 0 -87 50q-30 -50 -86 -50q-47 0 -75 33.5t-28 81.5 q-90 -68 -198 -68q-118 0 -211 80q54 1 106 20q-113 31 -182 127q32 -7 71 -7q89 0 164 46q-192 192 -240 306q-24 56 -24 160q0 57 9 125.5t31.5 146.5t55 141t86.5 105t120 42q59 0 81 -52q19 29 42 54q2 3 12 13t13 16q10 15 23 38t25 42t28 39q87 111 211.5 177 t260.5 66q35 0 62 -4q59 64 146 64q83 0 140 -57q5 -5 5 -12q0 -5 -6 -13.5t-12.5 -16t-16 -17l-10.5 -10.5q17 -6 36 -18t19 -24q0 -6 -16 -25q157 -138 197 -378q25 30 60 30q45 0 100 -49q90 -80 90 -279z" /> +<glyph unicode="&#xf2b3;" d="M917 631q0 33 -6 64h-362v-132h217q-12 -76 -74.5 -120.5t-142.5 -44.5q-99 0 -169 71.5t-70 170.5t70 170.5t169 71.5q93 0 153 -59l104 101q-108 100 -257 100q-160 0 -272 -112.5t-112 -271.5t112 -271.5t272 -112.5q165 0 266.5 105t101.5 270zM1262 585h109v110 h-109v110h-110v-110h-110v-110h110v-110h110v110zM1536 640q0 -209 -103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5t103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5z" /> +<glyph unicode="&#xf2b4;" d="M1536 1024v-839q0 -48 -49 -62q-174 -52 -338 -52q-73 0 -215.5 29.5t-227.5 29.5q-164 0 -370 -48v-338h-160v1368q-63 25 -101 81t-38 124q0 91 64 155t155 64t155 -64t64 -155q0 -68 -38 -124t-101 -81v-68q190 44 343 44q99 0 198 -15q14 -2 111.5 -22.5t149.5 -20.5 q77 0 165 18q11 2 80 21t89 19q26 0 45 -19t19 -45z" /> +<glyph unicode="&#xf2b5;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2b6;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2b7;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2b8;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2b9;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2ba;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2bb;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2bc;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2bd;" horiz-adv-x="1792" /> +<glyph unicode="&#xf2be;" horiz-adv-x="1792" /> +<glyph unicode="&#xf500;" horiz-adv-x="1792" /> +</font> +</defs></svg> \ No newline at end of file diff --git a/samples/bootstrap/fonts/fontawesome-webfont.ttf b/samples/bootstrap/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f221e50a2ef60738ba30932d834530cdfe55cb3e GIT binary patch literal 152796 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 ALjV8( literal 0 HcmV?d00001 diff --git a/samples/bootstrap/fonts/fontawesome-webfont.woff b/samples/bootstrap/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..6e7483cf61b490c08ed644d6ef802c69472eb247 GIT binary patch literal 90412 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%0Ded40&XED0GYFoIh+AV*?9!MR5pBW?X_8Bp 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%0A5^V#1^G^y=WBu4!YwI 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 IH>08b4`|GD*#H0l literal 0 HcmV?d00001 diff --git a/samples/bootstrap/fonts/fontawesome-webfont.woff2 b/samples/bootstrap/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7eb74fd127ee5eddf3b95fee6a20dc1684b0963b GIT binary patch literal 71896 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 literal 0 HcmV?d00001 diff --git a/samples/bootstrap/js/bootstrap.min.js b/samples/bootstrap/js/bootstrap.min.js new file mode 100644 index 00000000..9bcd2fcc --- /dev/null +++ b/samples/bootstrap/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){ +this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/samples/bootstrap/js/jquery.min.js b/samples/bootstrap/js/jquery.min.js new file mode 100644 index 00000000..f6a6a99e --- /dev/null +++ b/samples/bootstrap/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.1.0 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.0",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null!=a?a<0?this[a+this.length]:this[a]:f.call(this)},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=r.isArray(d)))?(e?(e=!1,f=c&&r.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ea(b))!==a)}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}},d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(_,aa),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=V.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(_,aa),$.test(j[0].type)&&qa(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&sa(j),!a)return G.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,!b||$.test(a)&&qa(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){if(r.isFunction(b))return r.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return r.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(C.test(b))return r.filter(b,a,c);b=r.filter(b,a)}return r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType})}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/\S+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,M,e),g(f,c,N,e)):(f++,j.call(a,g(f,c,M,e),g(f,c,N,e),g(f,c,M,c.notifyWith))):(d!==M&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0, +r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},T=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function U(){this.expando=r.expando+U.uid++}U.uid=1,U.prototype={cache:function(a){var b=a[this.expando];return b||(b={},T(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){r.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(K)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var V=new U,W=new U,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Y=/[A-Z]/g;function Z(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Y,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c||"false"!==c&&("null"===c?null:+c+""===c?+c:X.test(c)?JSON.parse(c):c)}catch(e){}W.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return W.hasData(a)||V.hasData(a)},data:function(a,b,c){return W.access(a,b,c)},removeData:function(a,b){W.remove(a,b)},_data:function(a,b,c){return V.access(a,b,c)},_removeData:function(a,b){V.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=W.get(f),1===f.nodeType&&!V.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),Z(f,d,e[d])));V.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){W.set(this,a)}):S(this,function(b){var c;if(f&&void 0===b){if(c=W.get(f,a),void 0!==c)return c;if(c=Z(f,a),void 0!==c)return c}else this.each(function(){W.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=V.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var $=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,_=new RegExp("^(?:([+-])=|)("+$+")([a-z%]*)$","i"),aa=["Top","Right","Bottom","Left"],ba=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ca=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function da(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&_.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,r.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ea={};function fa(a){var b,c=a.ownerDocument,d=a.nodeName,e=ea[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ea[d]=e,e)}function ga(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=V.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&ba(d)&&(e[f]=fa(d))):"none"!==c&&(e[f]="none",V.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ga(this,!0)},hide:function(){return ga(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){ba(this)?r(this).show():r(this).hide()})}});var ha=/^(?:checkbox|radio)$/i,ia=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,ja=/^$|\/(?:java|ecma)script/i,ka={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ka.optgroup=ka.option,ka.tbody=ka.tfoot=ka.colgroup=ka.caption=ka.thead,ka.th=ka.td;function la(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function ma(a,b){for(var c=0,d=a.length;c<d;c++)V.set(a[c],"globalEval",!b||V.get(b[c],"globalEval"))}var na=/<|&#?\w+;/;function oa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(na.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ia.exec(f)||["",""])[1].toLowerCase(),i=ka[h]||ka._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=la(l.appendChild(f),"script"),j&&ma(g),c){k=0;while(f=g[k++])ja.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var pa=d.documentElement,qa=/^key/,ra=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,sa=/^([^.]*)(?:\.(.+)|)/;function ta(){return!0}function ua(){return!1}function va(){try{return d.activeElement}catch(a){}}function wa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)wa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=ua;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(pa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=sa.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;c<h;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?r(e,this).index(i)>-1:r.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==va()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===va()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&r.nodeName(this,"input"))return this.click(),!1},_default:function(a){return r.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?ta:ua,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:ua,isPropagationStopped:ua,isImmediatePropagationStopped:ua,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=ta,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=ta,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=ta,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&qa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ra.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return wa(this,a,b,c,d)},one:function(a,b,c,d){return wa(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=ua),this.each(function(){r.event.remove(this,a,c,b)})}});var xa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,ya=/<script|<style|<link/i,za=/checked\s*(?:[^=]|=\s*.checked.)/i,Aa=/^true\/(.*)/,Ba=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ca(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Da(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ea(a){var b=Aa.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Fa(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}W.hasData(a)&&(h=W.access(a),i=r.extend({},h),W.set(b,i))}}function Ga(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ha.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ha(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&za.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ha(f,b,c,d)});if(m&&(e=oa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(la(e,"script"),Da),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,la(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ea),l=0;l<i;l++)j=h[l],ja.test(j.type||"")&&!V.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Ba,""),k))}return a}function Ia(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(la(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&ma(la(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(xa,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=la(h),f=la(a),d=0,e=f.length;d<e;d++)Ga(f[d],g[d]);if(b)if(c)for(f=f||la(a),g=g||la(h),d=0,e=f.length;d<e;d++)Fa(f[d],g[d]);else Fa(a,h);return g=la(h,"script"),g.length>0&&ma(g,!i&&la(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ia(this,a,!0)},remove:function(a){return Ia(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.appendChild(a)}})},prepend:function(){return Ha(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ca(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ha(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(la(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!ya.test(a)&&!ka[(ia.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(la(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ha(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(la(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var Ja=/^margin/,Ka=new RegExp("^("+$+")(?!px)[a-z%]+$","i"),La=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",pa.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,pa.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Ma(a,b,c){var d,e,f,g,h=a.style;return c=c||La(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ka.test(g)&&Ja.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Na(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Oa=/^(none|table(?!-c[ea]).+)/,Pa={position:"absolute",visibility:"hidden",display:"block"},Qa={letterSpacing:"0",fontWeight:"400"},Ra=["Webkit","Moz","ms"],Sa=d.createElement("div").style;function Ta(a){if(a in Sa)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ra.length;while(c--)if(a=Ra[c]+b,a in Sa)return a}function Ua(a,b,c){var d=_.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Va(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+aa[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+aa[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+aa[f]+"Width",!0,e))):(g+=r.css(a,"padding"+aa[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+aa[f]+"Width",!0,e)));return g}function Wa(a,b,c){var d,e=!0,f=La(a),g="border-box"===r.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),d<=0||null==d){if(d=Ma(a,b,f),(d<0||null==d)&&(d=a.style[b]),Ka.test(d))return d;e=g&&(o.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+Va(a,b,c||(g?"border":"content"),e,f)+"px"}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Ma(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=a.style;return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=_.exec(c))&&e[1]&&(c=da(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b);return b=r.cssProps[h]||(r.cssProps[h]=Ta(h)||h),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Ma(a,b,d)),"normal"===e&&b in Qa&&(e=Qa[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Oa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?Wa(a,b,d):ca(a,Pa,function(){return Wa(a,b,d)})},set:function(a,c,d){var e,f=d&&La(a),g=d&&Va(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=_.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ua(a,c,g)}}}),r.cssHooks.marginLeft=Na(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Ma(a,"marginLeft"))||a.getBoundingClientRect().left-ca(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+aa[d]+b]=f[d]||f[d-2]||f[0];return e}},Ja.test(a)||(r.cssHooks[a+b].set=Ua)}),r.fn.extend({css:function(a,b){return S(this,function(a,b,c){var d,e,f={},g=0;if(r.isArray(b)){for(d=La(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}});function Xa(a,b,c,d,e){return new Xa.prototype.init(a,b,c,d,e)}r.Tween=Xa,Xa.prototype={constructor:Xa,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Xa.propHooks[this.prop];return a&&a.get?a.get(this):Xa.propHooks._default.get(this)},run:function(a){var b,c=Xa.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Xa.propHooks._default.set(this),this}},Xa.prototype.init.prototype=Xa.prototype,Xa.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Xa.propHooks.scrollTop=Xa.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Xa.prototype.init,r.fx.step={};var Ya,Za,$a=/^(?:toggle|show|hide)$/,_a=/queueHooks$/;function ab(){Za&&(a.requestAnimationFrame(ab),r.fx.tick())}function bb(){return a.setTimeout(function(){Ya=void 0}),Ya=r.now()}function cb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=aa[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function db(a,b,c){for(var d,e=(gb.tweeners[b]||[]).concat(gb.tweeners["*"]),f=0,g=e.length;f<g;f++)if(d=e[f].call(c,b,a))return d}function eb(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,p=a.nodeType&&ba(a),q=V.get(a,"fxshow");c.queue||(g=r._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,r.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],$a.test(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}n[d]=q&&q[d]||r.style(a,d)}if(i=!r.isEmptyObject(b),i||!r.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=q&&q.display,null==j&&(j=V.get(a,"display")),k=r.css(a,"display"),"none"===k&&(j?k=j:(ga([a],!0),j=a.style.display||j,k=r.css(a,"display"),ga([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===r.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(q?"hidden"in q&&(p=q.hidden):q=V.access(a,"fxshow",{display:j}),f&&(q.hidden=!p),p&&ga([a],!0),m.done(function(){p||ga([a]),V.remove(a,"fxshow");for(d in n)r.style(a,d,n[d])})),i=db(p?q[d]:0,d,m),d in q||(q[d]=i.start,p&&(i.end=i.start,i.start=0))}}function fb(a,b){var c,d,e,f,g;for(c in a)if(d=r.camelCase(c),e=b[d],f=a[c],r.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=r.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function gb(a,b,c){var d,e,f=0,g=gb.prefilters.length,h=r.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Ya||bb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;g<i;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),f<1&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:r.extend({},b),opts:r.extend(!0,{specialEasing:{},easing:r.easing._default},c),originalProperties:b,originalOptions:c,startTime:Ya||bb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=r.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;c<d;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(fb(k,j.opts.specialEasing);f<g;f++)if(d=gb.prefilters[f].call(j,a,k,j.opts))return r.isFunction(d.stop)&&(r._queueHooks(j.elem,j.opts.queue).stop=r.proxy(d.stop,d)),d;return r.map(k,db,j),r.isFunction(j.opts.start)&&j.opts.start.call(a,j),r.fx.timer(r.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}r.Animation=r.extend(gb,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return da(c.elem,a,_.exec(b),c),c}]},tweener:function(a,b){r.isFunction(a)?(b=a,a=["*"]):a=a.match(K);for(var c,d=0,e=a.length;d<e;d++)c=a[d],gb.tweeners[c]=gb.tweeners[c]||[],gb.tweeners[c].unshift(b)},prefilters:[eb],prefilter:function(a,b){b?gb.prefilters.unshift(a):gb.prefilters.push(a)}}),r.speed=function(a,b,c){var e=a&&"object"==typeof a?r.extend({},a):{complete:c||!c&&b||r.isFunction(a)&&a,duration:a,easing:c&&b||b&&!r.isFunction(b)&&b};return r.fx.off||d.hidden?e.duration=0:e.duration="number"==typeof e.duration?e.duration:e.duration in r.fx.speeds?r.fx.speeds[e.duration]:r.fx.speeds._default,null!=e.queue&&e.queue!==!0||(e.queue="fx"),e.old=e.complete,e.complete=function(){r.isFunction(e.old)&&e.old.call(this),e.queue&&r.dequeue(this,e.queue)},e},r.fn.extend({fadeTo:function(a,b,c,d){return this.filter(ba).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=r.isEmptyObject(a),f=r.speed(b,c,d),g=function(){var b=gb(this,r.extend({},a),f);(e||V.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=r.timers,g=V.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&_a.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||r.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=V.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=r.timers,g=d?d.length:0;for(c.finish=!0,r.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;b<g;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),r.each(["toggle","show","hide"],function(a,b){var c=r.fn[b];r.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(cb(b,!0),a,d,e)}}),r.each({slideDown:cb("show"),slideUp:cb("hide"),slideToggle:cb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){r.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),r.timers=[],r.fx.tick=function(){var a,b=0,c=r.timers;for(Ya=r.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||r.fx.stop(),Ya=void 0},r.fx.timer=function(a){r.timers.push(a),a()?r.fx.start():r.timers.pop()},r.fx.interval=13,r.fx.start=function(){Za||(Za=a.requestAnimationFrame?a.requestAnimationFrame(ab):a.setInterval(r.fx.tick,r.fx.interval))},r.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(Za):a.clearInterval(Za),Za=null},r.fx.speeds={slow:600,fast:200,_default:400},r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var hb,ib=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return S(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?hb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K); +if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),hb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ib[b]||r.find.attr;ib[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ib[g],ib[g]=e,e=null!=c(a,b,d)?g:null,ib[g]=f),e}});var jb=/^(?:input|select|textarea|button)$/i,kb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):jb.test(a.nodeName)||kb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});var lb=/[\t\r\n\f]/g;function mb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,mb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,mb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=mb(c),d=1===c.nodeType&&(" "+e+" ").replace(lb," ")){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=r.trim(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,mb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=mb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(c)+" ").replace(lb," ").indexOf(b)>-1)return!0;return!1}});var nb=/\r/g,ob=/[\x20\t\r\n\f]+/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(nb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:r.trim(r.text(a)).replace(ob," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=e<0?h:f?e:0;i<h;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!r.nodeName(c.parentNode,"optgroup"))){if(b=r(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ha.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,""),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&f("error"===a.type?404:200,a.type)}),d.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Qb=[],Rb=/(=)\?(?=&|$)|\?\?/;r.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Qb.pop()||r.expando+"_"+rb++;return this[a]=!0,a}}),r.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Rb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Rb.test(b.data)&&"data");if(h||"jsonp"===b.dataTypes[0])return e=b.jsonpCallback=r.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Rb,"$1"+e):b.jsonp!==!1&&(b.url+=(sb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||r.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?r(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Qb.push(e)),g&&r.isFunction(f)&&f(g[0]),g=f=void 0}),"script"}),o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=B.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=oa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=r.trim(a.slice(h)),a=a.slice(0,h)),r.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&r.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?r("<div>").append(r.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},r.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){r.fn[b]=function(a){return this.on(b,a)}}),r.expr.pseudos.animated=function(a){return r.grep(r.timers,function(b){return a===b.elem}).length};function Sb(a){return r.isWindow(a)?a:9===a.nodeType&&a.defaultView}r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Sb(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),r.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||pa})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return S(this,function(a,d,e){var f=Sb(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Na(o.pixelPosition,function(a,c){if(c)return c=Ma(a,b),Ka.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return S(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var Tb=a.jQuery,Ub=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=Ub),b&&a.jQuery===r&&(a.jQuery=Tb),r},b||(a.jQuery=a.$=r),r}); diff --git a/Examples/data/continents/Africa.txt b/samples/data/continents/Africa.txt similarity index 100% rename from Examples/data/continents/Africa.txt rename to samples/data/continents/Africa.txt diff --git a/Examples/data/continents/Asia.txt b/samples/data/continents/Asia.txt similarity index 100% rename from Examples/data/continents/Asia.txt rename to samples/data/continents/Asia.txt diff --git a/Examples/data/continents/Europe.txt b/samples/data/continents/Europe.txt similarity index 100% rename from Examples/data/continents/Europe.txt rename to samples/data/continents/Europe.txt diff --git a/Examples/data/continents/North America.txt b/samples/data/continents/North America.txt similarity index 100% rename from Examples/data/continents/North America.txt rename to samples/data/continents/North America.txt diff --git a/Examples/data/continents/Oceania.txt b/samples/data/continents/Oceania.txt similarity index 100% rename from Examples/data/continents/Oceania.txt rename to samples/data/continents/Oceania.txt diff --git a/Examples/data/continents/South America.txt b/samples/data/continents/South America.txt similarity index 100% rename from Examples/data/continents/South America.txt rename to samples/data/continents/South America.txt diff --git a/Examples/images/PhpSpreadsheet_logo.gif b/samples/images/PhpSpreadsheet_logo.gif similarity index 100% rename from Examples/images/PhpSpreadsheet_logo.gif rename to samples/images/PhpSpreadsheet_logo.gif diff --git a/Examples/images/officelogo.jpg b/samples/images/officelogo.jpg similarity index 100% rename from Examples/images/officelogo.jpg rename to samples/images/officelogo.jpg diff --git a/Examples/images/paid.png b/samples/images/paid.png similarity index 100% rename from Examples/images/paid.png rename to samples/images/paid.png diff --git a/Examples/images/termsconditions.jpg b/samples/images/termsconditions.jpg similarity index 100% rename from Examples/images/termsconditions.jpg rename to samples/images/termsconditions.jpg diff --git a/samples/index.php b/samples/index.php new file mode 100644 index 00000000..748ec6f9 --- /dev/null +++ b/samples/index.php @@ -0,0 +1,39 @@ +<?php + +require_once 'Header.php'; + +$requirements = [ + 'PHP 5.5.0' => version_compare(phpversion(), '5.5.0', '>='), + 'PHP extension XML' => extension_loaded('xml'), + 'PHP extension xmlwriter' => extension_loaded('xmlwriter'), + 'PHP extension mbstring' => extension_loaded('mbstring'), + 'PHP extension ZipArchive (optional)' => extension_loaded('zip'), + 'PHP extension GD (optional)' => extension_loaded('gd'), + 'PHP extension dom (optional)' => extension_loaded('dom'), +]; + +if (!$helper->isCli()) { + ?> + <div class="jumbotron"> + <p>Welcome to PHPSpreadsheet, a library written in pure PHP and providing a set of classes that allow you to read from and to write to different spreadsheet file formats, like Excel and LibreOffice Calc.</p> + <p>&nbsp;</p> + <p> + <a class="btn btn-lg btn-primary" href="https://github.com/PHPOffice/PHPSpreadsheet" role="button"><i class="fa fa-github fa-lg" title="GitHub"></i> Fork us on Github!</a> + <a class="btn btn-lg btn-primary" href="http://phpspreadsheet.readthedocs.org/en/develop/" role="button"><i class="fa fa-book fa-lg" title="Docs"></i> Read the Docs</a> + </p> + </div> + <?php + echo '<h3>Requirement check:</h3>'; + echo '<ul>'; + foreach ($requirements as $label => $result) { + $status = $result ? 'passed' : 'failed'; + echo "<li>{$label} ... <span class='{$status}'>{$status}</span></li>"; + } + echo '</ul>'; +} else { + echo 'Requirement check:' . PHP_EOL; + foreach ($requirements as $label => $result) { + $status = $result ? '32m passed' : '31m failed'; + echo "{$label} ... \033[{$status}\033[0m" . PHP_EOL; + } +} diff --git a/Examples/templates/26template.xlsx b/samples/templates/26template.xlsx similarity index 100% rename from Examples/templates/26template.xlsx rename to samples/templates/26template.xlsx diff --git a/Examples/templates/27template.xls b/samples/templates/27template.xls similarity index 100% rename from Examples/templates/27template.xls rename to samples/templates/27template.xls diff --git a/Examples/templates/28iterators.xlsx b/samples/templates/28iterators.xlsx similarity index 100% rename from Examples/templates/28iterators.xlsx rename to samples/templates/28iterators.xlsx diff --git a/Examples/templates/30template.xls b/samples/templates/30template.xls similarity index 100% rename from Examples/templates/30template.xls rename to samples/templates/30template.xls diff --git a/Examples/templates/31docproperties.xls b/samples/templates/31docproperties.xls similarity index 100% rename from Examples/templates/31docproperties.xls rename to samples/templates/31docproperties.xls diff --git a/Examples/templates/31docproperties.xlsx b/samples/templates/31docproperties.xlsx similarity index 100% rename from Examples/templates/31docproperties.xlsx rename to samples/templates/31docproperties.xlsx diff --git a/Examples/templates/32chartreadwrite.xlsx b/samples/templates/32chartreadwrite.xlsx similarity index 100% rename from Examples/templates/32chartreadwrite.xlsx rename to samples/templates/32chartreadwrite.xlsx diff --git a/Examples/templates/32complexChartreadwrite.xlsx b/samples/templates/32complexChartreadwrite.xlsx similarity index 100% rename from Examples/templates/32complexChartreadwrite.xlsx rename to samples/templates/32complexChartreadwrite.xlsx diff --git a/Examples/templates/32readwriteAreaChart1.xlsx b/samples/templates/32readwriteAreaChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaChart1.xlsx rename to samples/templates/32readwriteAreaChart1.xlsx diff --git a/Examples/templates/32readwriteAreaChart2.xlsx b/samples/templates/32readwriteAreaChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaChart2.xlsx rename to samples/templates/32readwriteAreaChart2.xlsx diff --git a/Examples/templates/32readwriteAreaChart3.xlsx b/samples/templates/32readwriteAreaChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaChart3.xlsx rename to samples/templates/32readwriteAreaChart3.xlsx diff --git a/Examples/templates/32readwriteAreaChart3D1.xlsx b/samples/templates/32readwriteAreaChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaChart3D1.xlsx rename to samples/templates/32readwriteAreaChart3D1.xlsx diff --git a/Examples/templates/32readwriteAreaPercentageChart1.xlsx b/samples/templates/32readwriteAreaPercentageChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaPercentageChart1.xlsx rename to samples/templates/32readwriteAreaPercentageChart1.xlsx diff --git a/Examples/templates/32readwriteAreaPercentageChart2.xlsx b/samples/templates/32readwriteAreaPercentageChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaPercentageChart2.xlsx rename to samples/templates/32readwriteAreaPercentageChart2.xlsx diff --git a/Examples/templates/32readwriteAreaPercentageChart3D1.xlsx b/samples/templates/32readwriteAreaPercentageChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaPercentageChart3D1.xlsx rename to samples/templates/32readwriteAreaPercentageChart3D1.xlsx diff --git a/Examples/templates/32readwriteAreaStackedChart1.xlsx b/samples/templates/32readwriteAreaStackedChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaStackedChart1.xlsx rename to samples/templates/32readwriteAreaStackedChart1.xlsx diff --git a/Examples/templates/32readwriteAreaStackedChart2.xlsx b/samples/templates/32readwriteAreaStackedChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaStackedChart2.xlsx rename to samples/templates/32readwriteAreaStackedChart2.xlsx diff --git a/Examples/templates/32readwriteAreaStackedChart3D1.xlsx b/samples/templates/32readwriteAreaStackedChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteAreaStackedChart3D1.xlsx rename to samples/templates/32readwriteAreaStackedChart3D1.xlsx diff --git a/Examples/templates/32readwriteBarChart1.xlsx b/samples/templates/32readwriteBarChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteBarChart1.xlsx rename to samples/templates/32readwriteBarChart1.xlsx diff --git a/Examples/templates/32readwriteBarChart2.xlsx b/samples/templates/32readwriteBarChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteBarChart2.xlsx rename to samples/templates/32readwriteBarChart2.xlsx diff --git a/Examples/templates/32readwriteBarChart3.xlsx b/samples/templates/32readwriteBarChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteBarChart3.xlsx rename to samples/templates/32readwriteBarChart3.xlsx diff --git a/Examples/templates/32readwriteBarChart3D1.xlsx b/samples/templates/32readwriteBarChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteBarChart3D1.xlsx rename to samples/templates/32readwriteBarChart3D1.xlsx diff --git a/Examples/templates/32readwriteBarPercentageChart1.xlsx b/samples/templates/32readwriteBarPercentageChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteBarPercentageChart1.xlsx rename to samples/templates/32readwriteBarPercentageChart1.xlsx diff --git a/Examples/templates/32readwriteBarPercentageChart2.xlsx b/samples/templates/32readwriteBarPercentageChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteBarPercentageChart2.xlsx rename to samples/templates/32readwriteBarPercentageChart2.xlsx diff --git a/Examples/templates/32readwriteBarPercentageChart3D1.xlsx b/samples/templates/32readwriteBarPercentageChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteBarPercentageChart3D1.xlsx rename to samples/templates/32readwriteBarPercentageChart3D1.xlsx diff --git a/Examples/templates/32readwriteBarStackedChart1.xlsx b/samples/templates/32readwriteBarStackedChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteBarStackedChart1.xlsx rename to samples/templates/32readwriteBarStackedChart1.xlsx diff --git a/Examples/templates/32readwriteBarStackedChart2.xlsx b/samples/templates/32readwriteBarStackedChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteBarStackedChart2.xlsx rename to samples/templates/32readwriteBarStackedChart2.xlsx diff --git a/Examples/templates/32readwriteBarStackedChart3D1.xlsx b/samples/templates/32readwriteBarStackedChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteBarStackedChart3D1.xlsx rename to samples/templates/32readwriteBarStackedChart3D1.xlsx diff --git a/Examples/templates/32readwriteBubbleChart1.xlsx b/samples/templates/32readwriteBubbleChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteBubbleChart1.xlsx rename to samples/templates/32readwriteBubbleChart1.xlsx diff --git a/Examples/templates/32readwriteBubbleChart3D1.xlsx b/samples/templates/32readwriteBubbleChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteBubbleChart3D1.xlsx rename to samples/templates/32readwriteBubbleChart3D1.xlsx diff --git a/Examples/templates/32readwriteChartWithImages1.xlsx b/samples/templates/32readwriteChartWithImages1.xlsx similarity index 100% rename from Examples/templates/32readwriteChartWithImages1.xlsx rename to samples/templates/32readwriteChartWithImages1.xlsx diff --git a/Examples/templates/32readwriteColumnChart1.xlsx b/samples/templates/32readwriteColumnChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnChart1.xlsx rename to samples/templates/32readwriteColumnChart1.xlsx diff --git a/Examples/templates/32readwriteColumnChart2.xlsx b/samples/templates/32readwriteColumnChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnChart2.xlsx rename to samples/templates/32readwriteColumnChart2.xlsx diff --git a/Examples/templates/32readwriteColumnChart3.xlsx b/samples/templates/32readwriteColumnChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnChart3.xlsx rename to samples/templates/32readwriteColumnChart3.xlsx diff --git a/Examples/templates/32readwriteColumnChart3D1.xlsx b/samples/templates/32readwriteColumnChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnChart3D1.xlsx rename to samples/templates/32readwriteColumnChart3D1.xlsx diff --git a/Examples/templates/32readwriteColumnChart4.xlsx b/samples/templates/32readwriteColumnChart4.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnChart4.xlsx rename to samples/templates/32readwriteColumnChart4.xlsx diff --git a/Examples/templates/32readwriteColumnPercentageChart1.xlsx b/samples/templates/32readwriteColumnPercentageChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnPercentageChart1.xlsx rename to samples/templates/32readwriteColumnPercentageChart1.xlsx diff --git a/Examples/templates/32readwriteColumnPercentageChart2.xlsx b/samples/templates/32readwriteColumnPercentageChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnPercentageChart2.xlsx rename to samples/templates/32readwriteColumnPercentageChart2.xlsx diff --git a/Examples/templates/32readwriteColumnPercentageChart3D1.xlsx b/samples/templates/32readwriteColumnPercentageChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnPercentageChart3D1.xlsx rename to samples/templates/32readwriteColumnPercentageChart3D1.xlsx diff --git a/Examples/templates/32readwriteColumnStackedChart1.xlsx b/samples/templates/32readwriteColumnStackedChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnStackedChart1.xlsx rename to samples/templates/32readwriteColumnStackedChart1.xlsx diff --git a/Examples/templates/32readwriteColumnStackedChart2.xlsx b/samples/templates/32readwriteColumnStackedChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnStackedChart2.xlsx rename to samples/templates/32readwriteColumnStackedChart2.xlsx diff --git a/Examples/templates/32readwriteColumnStackedChart3D1.xlsx b/samples/templates/32readwriteColumnStackedChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteColumnStackedChart3D1.xlsx rename to samples/templates/32readwriteColumnStackedChart3D1.xlsx diff --git a/Examples/templates/32readwriteDonutChart1.xlsx b/samples/templates/32readwriteDonutChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteDonutChart1.xlsx rename to samples/templates/32readwriteDonutChart1.xlsx diff --git a/Examples/templates/32readwriteDonutChart2.xlsx b/samples/templates/32readwriteDonutChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteDonutChart2.xlsx rename to samples/templates/32readwriteDonutChart2.xlsx diff --git a/Examples/templates/32readwriteDonutChart3.xlsx b/samples/templates/32readwriteDonutChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteDonutChart3.xlsx rename to samples/templates/32readwriteDonutChart3.xlsx diff --git a/Examples/templates/32readwriteDonutChart4.xlsx b/samples/templates/32readwriteDonutChart4.xlsx similarity index 100% rename from Examples/templates/32readwriteDonutChart4.xlsx rename to samples/templates/32readwriteDonutChart4.xlsx diff --git a/Examples/templates/32readwriteDonutChartExploded1.xlsx b/samples/templates/32readwriteDonutChartExploded1.xlsx similarity index 100% rename from Examples/templates/32readwriteDonutChartExploded1.xlsx rename to samples/templates/32readwriteDonutChartExploded1.xlsx diff --git a/Examples/templates/32readwriteDonutChartMultiseries1.xlsx b/samples/templates/32readwriteDonutChartMultiseries1.xlsx similarity index 100% rename from Examples/templates/32readwriteDonutChartMultiseries1.xlsx rename to samples/templates/32readwriteDonutChartMultiseries1.xlsx diff --git a/Examples/templates/32readwriteLineChart1.xlsx b/samples/templates/32readwriteLineChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteLineChart1.xlsx rename to samples/templates/32readwriteLineChart1.xlsx diff --git a/Examples/templates/32readwriteLineChart2.xlsx b/samples/templates/32readwriteLineChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteLineChart2.xlsx rename to samples/templates/32readwriteLineChart2.xlsx diff --git a/Examples/templates/32readwriteLineChart3.xlsx b/samples/templates/32readwriteLineChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteLineChart3.xlsx rename to samples/templates/32readwriteLineChart3.xlsx diff --git a/Examples/templates/32readwriteLineChart3D1.xlsx b/samples/templates/32readwriteLineChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwriteLineChart3D1.xlsx rename to samples/templates/32readwriteLineChart3D1.xlsx diff --git a/Examples/templates/32readwriteLineChartNoPointMarkers1.xlsx b/samples/templates/32readwriteLineChartNoPointMarkers1.xlsx similarity index 100% rename from Examples/templates/32readwriteLineChartNoPointMarkers1.xlsx rename to samples/templates/32readwriteLineChartNoPointMarkers1.xlsx diff --git a/Examples/templates/32readwriteLinePercentageChart1.xlsx b/samples/templates/32readwriteLinePercentageChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteLinePercentageChart1.xlsx rename to samples/templates/32readwriteLinePercentageChart1.xlsx diff --git a/Examples/templates/32readwriteLinePercentageChart2.xlsx b/samples/templates/32readwriteLinePercentageChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteLinePercentageChart2.xlsx rename to samples/templates/32readwriteLinePercentageChart2.xlsx diff --git a/Examples/templates/32readwriteLineStackedChart1.xlsx b/samples/templates/32readwriteLineStackedChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteLineStackedChart1.xlsx rename to samples/templates/32readwriteLineStackedChart1.xlsx diff --git a/Examples/templates/32readwriteLineStackedChart2.xlsx b/samples/templates/32readwriteLineStackedChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteLineStackedChart2.xlsx rename to samples/templates/32readwriteLineStackedChart2.xlsx diff --git a/Examples/templates/32readwritePieChart1.xlsx b/samples/templates/32readwritePieChart1.xlsx similarity index 100% rename from Examples/templates/32readwritePieChart1.xlsx rename to samples/templates/32readwritePieChart1.xlsx diff --git a/Examples/templates/32readwritePieChart2.xlsx b/samples/templates/32readwritePieChart2.xlsx similarity index 100% rename from Examples/templates/32readwritePieChart2.xlsx rename to samples/templates/32readwritePieChart2.xlsx diff --git a/Examples/templates/32readwritePieChart3.xlsx b/samples/templates/32readwritePieChart3.xlsx similarity index 100% rename from Examples/templates/32readwritePieChart3.xlsx rename to samples/templates/32readwritePieChart3.xlsx diff --git a/Examples/templates/32readwritePieChart3D1.xlsx b/samples/templates/32readwritePieChart3D1.xlsx similarity index 100% rename from Examples/templates/32readwritePieChart3D1.xlsx rename to samples/templates/32readwritePieChart3D1.xlsx diff --git a/Examples/templates/32readwritePieChart4.xlsx b/samples/templates/32readwritePieChart4.xlsx similarity index 100% rename from Examples/templates/32readwritePieChart4.xlsx rename to samples/templates/32readwritePieChart4.xlsx diff --git a/Examples/templates/32readwritePieChartExploded1.xlsx b/samples/templates/32readwritePieChartExploded1.xlsx similarity index 100% rename from Examples/templates/32readwritePieChartExploded1.xlsx rename to samples/templates/32readwritePieChartExploded1.xlsx diff --git a/Examples/templates/32readwritePieChartExploded3D1.xlsx b/samples/templates/32readwritePieChartExploded3D1.xlsx similarity index 100% rename from Examples/templates/32readwritePieChartExploded3D1.xlsx rename to samples/templates/32readwritePieChartExploded3D1.xlsx diff --git a/Examples/templates/32readwriteRadarChart1.xlsx b/samples/templates/32readwriteRadarChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteRadarChart1.xlsx rename to samples/templates/32readwriteRadarChart1.xlsx diff --git a/Examples/templates/32readwriteRadarChart2.xlsx b/samples/templates/32readwriteRadarChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteRadarChart2.xlsx rename to samples/templates/32readwriteRadarChart2.xlsx diff --git a/Examples/templates/32readwriteRadarChart3.xlsx b/samples/templates/32readwriteRadarChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteRadarChart3.xlsx rename to samples/templates/32readwriteRadarChart3.xlsx diff --git a/Examples/templates/32readwriteScatterChart1.xlsx b/samples/templates/32readwriteScatterChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteScatterChart1.xlsx rename to samples/templates/32readwriteScatterChart1.xlsx diff --git a/Examples/templates/32readwriteScatterChart2.xlsx b/samples/templates/32readwriteScatterChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteScatterChart2.xlsx rename to samples/templates/32readwriteScatterChart2.xlsx diff --git a/Examples/templates/32readwriteScatterChart3.xlsx b/samples/templates/32readwriteScatterChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteScatterChart3.xlsx rename to samples/templates/32readwriteScatterChart3.xlsx diff --git a/Examples/templates/32readwriteScatterChart4.xlsx b/samples/templates/32readwriteScatterChart4.xlsx similarity index 100% rename from Examples/templates/32readwriteScatterChart4.xlsx rename to samples/templates/32readwriteScatterChart4.xlsx diff --git a/Examples/templates/32readwriteScatterChart5.xlsx b/samples/templates/32readwriteScatterChart5.xlsx similarity index 100% rename from Examples/templates/32readwriteScatterChart5.xlsx rename to samples/templates/32readwriteScatterChart5.xlsx diff --git a/Examples/templates/32readwriteStockChart1.xlsx b/samples/templates/32readwriteStockChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteStockChart1.xlsx rename to samples/templates/32readwriteStockChart1.xlsx diff --git a/Examples/templates/32readwriteStockChart2.xlsx b/samples/templates/32readwriteStockChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteStockChart2.xlsx rename to samples/templates/32readwriteStockChart2.xlsx diff --git a/Examples/templates/32readwriteStockChart3.xlsx b/samples/templates/32readwriteStockChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteStockChart3.xlsx rename to samples/templates/32readwriteStockChart3.xlsx diff --git a/Examples/templates/32readwriteStockChart4.xlsx b/samples/templates/32readwriteStockChart4.xlsx similarity index 100% rename from Examples/templates/32readwriteStockChart4.xlsx rename to samples/templates/32readwriteStockChart4.xlsx diff --git a/Examples/templates/32readwriteSurfaceChart1.xlsx b/samples/templates/32readwriteSurfaceChart1.xlsx similarity index 100% rename from Examples/templates/32readwriteSurfaceChart1.xlsx rename to samples/templates/32readwriteSurfaceChart1.xlsx diff --git a/Examples/templates/32readwriteSurfaceChart2.xlsx b/samples/templates/32readwriteSurfaceChart2.xlsx similarity index 100% rename from Examples/templates/32readwriteSurfaceChart2.xlsx rename to samples/templates/32readwriteSurfaceChart2.xlsx diff --git a/Examples/templates/32readwriteSurfaceChart3.xlsx b/samples/templates/32readwriteSurfaceChart3.xlsx similarity index 100% rename from Examples/templates/32readwriteSurfaceChart3.xlsx rename to samples/templates/32readwriteSurfaceChart3.xlsx diff --git a/Examples/templates/32readwriteSurfaceChart4.xlsx b/samples/templates/32readwriteSurfaceChart4.xlsx similarity index 100% rename from Examples/templates/32readwriteSurfaceChart4.xlsx rename to samples/templates/32readwriteSurfaceChart4.xlsx diff --git a/Examples/templates/36writeLineChart1.xlsx b/samples/templates/36writeLineChart1.xlsx similarity index 100% rename from Examples/templates/36writeLineChart1.xlsx rename to samples/templates/36writeLineChart1.xlsx diff --git a/Examples/templates/43mergeBook1.xlsx b/samples/templates/43mergeBook1.xlsx similarity index 100% rename from Examples/templates/43mergeBook1.xlsx rename to samples/templates/43mergeBook1.xlsx diff --git a/Examples/templates/43mergeBook2.xlsx b/samples/templates/43mergeBook2.xlsx similarity index 100% rename from Examples/templates/43mergeBook2.xlsx rename to samples/templates/43mergeBook2.xlsx diff --git a/samples/templates/Excel2003XMLTest.xml b/samples/templates/Excel2003XMLTest.xml new file mode 100644 index 00000000..d386a0cf --- /dev/null +++ b/samples/templates/Excel2003XMLTest.xml @@ -0,0 +1,39529 @@ +<?xml version="1.0" encoding="UTF-8"?><?mso-application progid="Excel.Sheet"?><Workbook xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel"> + <OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office"> + <Colors> + <Color> + <Index>3</Index> + <RGB>#000000</RGB> + </Color> + <Color> + <Index>4</Index> + <RGB>#0000ff</RGB> + </Color> + <Color> + <Index>5</Index> + <RGB>#008000</RGB> + </Color> + <Color> + <Index>6</Index> + <RGB>#00ccff</RGB> + </Color> + <Color> + <Index>7</Index> + <RGB>#800080</RGB> + </Color> + <Color> + <Index>8</Index> + <RGB>#993366</RGB> + </Color> + <Color> + <Index>9</Index> + <RGB>#c0c0c0</RGB> + </Color> + <Color> + <Index>10</Index> + <RGB>#c47512</RGB> + </Color> + <Color> + <Index>11</Index> + <RGB>#ccffcc</RGB> + </Color> + <Color> + <Index>12</Index> + <RGB>#ddbc7d</RGB> + </Color> + <Color> + <Index>13</Index> + <RGB>#ff0000</RGB> + </Color> + <Color> + <Index>14</Index> + <RGB>#ff00ff</RGB> + </Color> + <Color> + <Index>15</Index> + <RGB>#ff6600</RGB> + </Color> + <Color> + <Index>16</Index> + <RGB>#ff9900</RGB> + </Color> + <Color> + <Index>17</Index> + <RGB>#ff99cc</RGB> + </Color> + <Color> + <Index>18</Index> + <RGB>#ffff00</RGB> + </Color> + </Colors> + </OfficeDocumentSettings> + <ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel"> + <WindowHeight>9000</WindowHeight> + <WindowWidth>13860</WindowWidth> + <WindowTopX>240</WindowTopX> + <WindowTopY>75</WindowTopY> + <ProtectStructure>False</ProtectStructure> + <ProtectWindows>False</ProtectWindows> + </ExcelWorkbook> + <Styles> + <Style ss:ID="Default" ss:Name="Default"/> + <Style ss:ID="Result" ss:Name="Result"> + <Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/> + </Style> + <Style ss:ID="Result2" ss:Name="Result2"> + <Font ss:Bold="1" ss:Italic="1" ss:Underline="Single"/> + <NumberFormat ss:Format="Currency"/> + </Style> + <Style ss:ID="Heading" ss:Name="Heading"> + <Font ss:Bold="1" ss:Italic="1" ss:Size="16"/> + </Style> + <Style ss:ID="Heading1" ss:Name="Heading1"> + <Font ss:Bold="1" ss:Italic="1" ss:Size="16"/> + </Style> + <Style ss:ID="Gnumeric-default" ss:Name="Gnumeric-default"> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="co1"/> + <Style ss:ID="co2"/> + <Style ss:ID="co3"/> + <Style ss:ID="co4"/> + <Style ss:ID="co5"/> + <Style ss:ID="co6"/> + <Style ss:ID="co7"/> + <Style ss:ID="co8"/> + <Style ss:ID="co9"/> + <Style ss:ID="ta1"/> + <Style ss:ID="ce1"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Bold="1" ss:Color="#ff0000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce2"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/> + </Style> + <Style ss:ID="ce3"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11" ss:Underline="Single"/> + </Style> + <Style ss:ID="ce4"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce5"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce6"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Single"/> + </Style> + <Style ss:ID="ce7"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:Underline="Double"/> + </Style> + <Style ss:ID="ce8"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11" ss:StrikeThrough="1"/> + </Style> + <Style ss:ID="ce9"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + <NumberFormat ss:Format="Short Date"/> + </Style> + <Style ss:ID="ce10"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + <NumberFormat ss:Format="Fixed"/> + </Style> + <Style ss:ID="ce11"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <NumberFormat ss:Format="Short Time"/> + </Style> + <Style ss:ID="ce12"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <NumberFormat ss:Format="General Date"/> + </Style> + <Style ss:ID="ce13"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="ce14"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/> + </Style> + <Style ss:ID="ce15"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10" ss:Underline="Double"/> + </Style> + <Style ss:ID="ce16"> + <Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="ce17"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#0000ff" ss:FontName="Sans" ss:Size="10" ss:Underline="Single"/> + </Style> + <Style ss:ID="ce18"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#00b050"/> + <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#0070c0"/> + <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ffff00"/> + <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#ff0000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce19"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Top" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce20"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce21"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Left" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce22"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Right" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce23"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="90"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="ce24"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + <NumberFormat ss:Format="General"/> + </Style> + <Style ss:ID="ce25"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <NumberFormat ss:Format="General"/> + </Style> + <Style ss:ID="ce26"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + </Style> + <Style ss:ID="ce27"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Italic="1" ss:Size="11"/> + </Style> + <Style ss:ID="ce28"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="45"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="ce29"> + <Alignment ss:Vertical="Top" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce30"> + <Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce31"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-90"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="ce32"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce33"> + <Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce34"> + <Alignment ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce35"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="-45"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="ce36"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce37"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#ff0000" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce38"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#ff9900" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce39"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#ffff00" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce40"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#008000" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce41"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#0000ff" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce42"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#993366" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce43"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#ff99cc" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce44"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#ddbc7d" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce45"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#00ccff" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce46"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#ff0000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce47"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#ff6600" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce48"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#ffff00" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce49"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#008000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce50"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#0000ff" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce51"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#800080" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce52"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#ff00ff" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce53"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#c47512" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce54"> + <Alignment ss:Horizontal="Center" ss:Vertical="Center" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#ccffcc" ss:FontName="Calibri" ss:Size="11"/> + <Interior ss:Color="#ff0000" ss:Pattern="Solid"/> + </Style> + <Style ss:ID="ce55"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce56"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce57"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce58"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce59"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce60"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce61"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce62"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce63"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="2" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce64"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="3" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce65"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders> + <Border ss:Position="Bottom" ss:LineStyle="Double" ss:Weight="3" ss:Color="#000000"/> + </Borders> + <Font ss:Color="#000000" ss:FontName="Calibri" ss:Size="11"/> + </Style> + <Style ss:ID="ce66"> + <Alignment ss:Horizontal="Center" ss:Vertical="Bottom" ss:WrapText="1" ss:Rotate="0"/> + <Borders/> + <Font ss:Bold="1" ss:Color="#000000" ss:FontName="Arial1" ss:Size="12"/> + </Style> + <Style ss:ID="ce67"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + <NumberFormat ss:Format="General"/> + </Style> + <Style ss:ID="ce68"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + <NumberFormat ss:Format="Medium Date"/> + </Style> + <Style ss:ID="ce69"> + <Alignment ss:Vertical="Bottom" ss:Rotate="0"/> + <Borders/> + <Font ss:Color="#000000" ss:FontName="Arial1" ss:Size="11"/> + <NumberFormat ss:Format="Medium Time"/> + </Style> + <Style ss:ID="gr1"/> + <Style ss:ID="gr2"/> + <Style ss:ID="ta_extref"/> + <Style ss:ID="P1"> + <Font ss:FontName="Sans" ss:Size="10"/> + </Style> + <Style ss:ID="T1"/> + </Styles> + <ss:Worksheet ss:Name="Sample Data"> + <Table ss:StyleID="ta1"> + <Column ss:Width="96.4913"/> + <Column ss:Span="1" ss:Width="48.3874"/> + <Column ss:Index="4" ss:Width="35.8866"/> + <Column ss:Span="6" ss:Width="48.3874"/> + <Column ss:Index="12" ss:Width="50.2583"/> + <Column ss:Span="1011" ss:Width="48.3874"/> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce1"> + <ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Test String 1</ss:Data> + <Comment> + <ss:Data xmlns="http://www.w3.org/TR/REC-html40"> + <Font html:Face="Sans" html:Size="10">Test for a simple colour-formatted string</Font> + </ss:Data> + </Comment> + </Cell> + <Cell ss:StyleID="ce4"> + <Data ss:Type="Number">1</Data> + </Cell> + <Cell ss:StyleID="ce4"> + <Data ss:Type="Number">5</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce2"> + <Data ss:Type="String">A</Data> + </Cell> + <Cell ss:StyleID="ce26"> + <Data ss:Type="String">E</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B1]+[.C1]"> + <Data ss:Type="Number">6</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.E1]&amp;[.F1]"> + <Data ss:Type="String">AE</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce2"> + <Data ss:Type="String">Test - String 2</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">2</Data> + </Cell> + <Cell ss:StyleID="ce4"> + <Data ss:Type="Number">6</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">B</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">F</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B2]+[.C2]"> + <Data ss:Type="Number">8</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.E2]&amp;[.F2]"> + <Data ss:Type="String">BF</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce55"> + <Data ss:Type="String">Dot</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce3"> + <Data ss:Type="String">Test #3</Data> + </Cell> + <Cell ss:StyleID="ce4"> + <Data ss:Type="Number">3</Data> + </Cell> + <Cell ss:StyleID="ce4"> + <Data ss:Type="Number">7</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce26"> + <Data ss:Type="String">C</Data> + </Cell> + <Cell ss:StyleID="ce2"> + <Data ss:Type="String">G</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B3]+[.C3]"> + <Data ss:Type="Number">10</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.E3]&amp;[.F3]"> + <Data ss:Type="String">CG</Data> + </Cell> + <Cell ss:StyleID="ce37"> + <Data ss:Type="String">Red</Data> + </Cell> + <Cell ss:StyleID="ce46"> + <Data ss:Type="String">Red</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce56"> + <Data ss:Type="String">Dash</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce4"> + <Data ss:Type="String">Test with (") in string</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">4</Data> + </Cell> + <Cell ss:StyleID="ce4"> + <Data ss:Type="Number">8</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce27"> + <Data ss:Type="String">D</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">H</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B4]+[.C4]"> + <Data ss:Type="Number">12</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.E4]&amp;[.F4]"> + <Data ss:Type="String">DH</Data> + </Cell> + <Cell ss:StyleID="ce38"> + <Data ss:Type="String">Orange</Data> + </Cell> + <Cell ss:StyleID="ce47"> + <Data ss:Type="String">Orange</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce57"> + <Data ss:Type="String">Dash/Dot/Dot</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.B4])"> + <Data ss:Type="Number">10</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.C1:.C4])"> + <Data ss:Type="Number">26</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=SUM([.B1:.C4])"> + <Data ss:Type="Number">36</Data> + </Cell> + <Cell ss:StyleID="ce39"> + <Data ss:Type="String">Yellow</Data> + </Cell> + <Cell ss:StyleID="ce48"> + <Data ss:Type="String">Yellow</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce58"> + <Data ss:Type="String">Dash/Dot</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce6"> + <Data ss:Type="String">Test #3</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">1.23</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=TRUE()"> + <Data ss:Type="Boolean">1</Data> + </Cell> + <Cell ss:StyleID="ce24"> + <Data ss:Type="Boolean">1</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce40"> + <Data ss:Type="String">Green</Data> + </Cell> + <Cell ss:StyleID="ce49"> + <Data ss:Type="String">Green</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce56"> + <Data ss:Type="String">Thin Line</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce7"> + <Data ss:Type="String">Test #3</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">2.34</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=FALSE()"> + <Data ss:Type="Boolean">0</Data> + </Cell> + <Cell ss:StyleID="ce25"> + <Data ss:Type="Boolean">0</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=SUM(marksrange)"> + <Data ss:Type="Number">0</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce41"> + <Data ss:Type="String">Blue</Data> + </Cell> + <Cell ss:StyleID="ce50"> + <Data ss:Type="String">Blue</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce59"> + <Data ss:Type="String">Thick Dash/Dot/Dot</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:Index="8" ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce8"> + <Data ss:Type="String">Test #3</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">3.45</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce42"> + <Data ss:Type="String">Purple</Data> + </Cell> + <Cell ss:StyleID="ce51"> + <Data ss:Type="String">Purple</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce60"> + <Data ss:Type="String">Variant Thick Dash/Dot/Dot</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="13.4929"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce43"> + <Data ss:Type="String">Pink</Data> + </Cell> + <Cell ss:StyleID="ce52"> + <Data ss:Type="String">Pink</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce61"> + <Data ss:Type="String">Thick Dash/Dot</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce9"> + <Data ss:Type="DateTime">1960-12-19T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce19"> + <Data ss:Type="String">TOP</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">0</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce44"> + <Data ss:Type="String">Brown</Data> + </Cell> + <Cell ss:StyleID="ce53"> + <Data ss:Type="String">Brown</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce62"> + <Data ss:Type="String">Thick Dash</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce10"> + <Data ss:Type="Number">1.5</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5" ss:Formula="of:=12/0"> + <Data ss:Type="Number">0</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce63"> + <Data ss:Type="String">Thick Line</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="13.4929"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce20"> + <Data ss:Type="String">BOTTOM</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce64"> + <Data ss:Type="String">Extra Thick Line</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce11"> + <Data ss:Type="DateTime">1899-12-31T02:30:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">Мойва сушеная</ss:Data> + <Comment> + <ss:Data xmlns="http://www.w3.org/TR/REC-html40"> + <Font html:Face="Sans" html:Size="10">Tests for UTF-8 content</Font> + </ss:Data> + </Comment> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce65"> + <Data ss:Type="String">Double Line</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce21"> + <Data ss:Type="String">LEFT</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">Ärendetext</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce12"> + <Data ss:Type="DateTime">1960-12-19T01:30:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">Højde</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:Index="16" ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce22"> + <Data ss:Type="String">RIGHT</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="13.4929"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:Height="41.7543"> + <Cell ss:StyleID="ce5"/> + <Cell ss:MergeAcross="1" ss:MergeDown="1" ss:StyleID="ce18"> + <Data ss:Type="String">BOX</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce29"> + <Data ss:Type="String">Test Column 1</Data> + </Cell> + <Cell ss:StyleID="ce30"/> + <Cell ss:StyleID="ce33"/> + <Cell ss:StyleID="ce36"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:Height="41.7543"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce30"/> + <Cell ss:StyleID="ce32"> + <Data ss:Type="String">Test Column 2</Data> + </Cell> + <Cell ss:StyleID="ce30"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce45"> + <Data ss:Type="String">Patterned</Data> + </Cell> + <Cell ss:StyleID="ce54"> + <Data ss:Type="String">Patterned 2</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:Height="41.7543"> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce30"/> + <Cell ss:StyleID="ce30"/> + <Cell ss:StyleID="ce34"> + <Data ss:Type="String">Test Column 3</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">Underline None</Data> + </Cell> + <Cell ss:Index="3" ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce23"> + <Data ss:Type="String">Rotate 90</Data> + </Cell> + <Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce28"> + <Data ss:Type="String">Rotate 45</Data> + </Cell> + <Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce31"> + <Data ss:Type="String">Rotate -90</Data> + </Cell> + <Cell ss:MergeAcross="1" ss:MergeDown="4" ss:StyleID="ce35"> + <Data ss:Type="String">Rotate -45</Data> + </Cell> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:StyleID="ce14"> + <Data ss:Type="String">Underline 1</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">Subscript</Data> + </Cell> + <Cell ss:Index="1016" ss:StyleID="ce13"/> + </Row> + <Row ss:Index="24" ss:Height="12.8409"> + <Cell ss:StyleID="ce15"> + <Data ss:Type="String">Underline 2</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">Superscript</Data> + </Cell> + <Cell ss:Index="1016" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:StyleID="ce14"> + <Data ss:Type="String">Underline 3</Data> + </Cell> + <Cell ss:Index="1016" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:StyleID="ce15"> + <Data ss:Type="String">Underline 4</Data> + </Cell> + <Cell ss:Index="1016" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="49.2378"> + <Cell ss:MergeAcross="2" ss:StyleID="ce16"> + <ss:Data xmlns="http://www.w3.org/TR/REC-html40" ss:Type="String">I don't know if Gnumeric supports <B> + <Font html:Face="Sans" html:Color="#000000" html:Size="10">Rich Text</Font> + </B> in the same way as <B> + <Font html:Face="Sans" html:Color="#000000" html:Size="10">Excel</Font> + </B>, And this row should be autofit height with text wrap</ss:Data> + </Cell> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + <Cell ss:StyleID="ce16"/> + </Row> + <Row ss:Height="13.4079"> + <Cell ss:MergeAcross="2" ss:HRef="http://www.phpexcel.net/" ss:StyleID="ce17"> + <Data ss:Type="String">PhpSpreadsheet</Data> + </Cell> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Index="65536" ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + </Table> + <x:WorksheetOptions/> + </ss:Worksheet> + <ss:Worksheet ss:Name="Report Data"> + <Table ss:StyleID="ta1"> + <Column ss:Span="2" ss:Width="56.2394"/> + <Column ss:Index="4" ss:Width="78.7465"/> + <Column ss:Width="58.5071"/> + <Column ss:Width="27.4961"/> + <Column ss:Width="78.7465"/> + <Column ss:Width="68.5984"/> + <Column ss:Span="1015" ss:Width="48.3874"/> + <Column ss:Index="1025"/> + <Column ss:Span="1"/> + <Row ss:AutoFitHeight="0" ss:Height="31.4929"> + <Cell ss:StyleID="ce66"/> + <Cell ss:StyleID="ce66"/> + <Cell ss:StyleID="ce66"/> + <Cell ss:StyleID="ce66"/> + <Cell ss:StyleID="ce66"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce66"/> + <Cell ss:StyleID="ce66"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="31.4929"> + <Cell ss:StyleID="ce66"> + <Data ss:Type="String">Heading 1</Data> + </Cell> + <Cell ss:StyleID="ce66"> + <Data ss:Type="String">Heading 2</Data> + </Cell> + <Cell ss:StyleID="ce66"> + <Data ss:Type="String">Third Heading</Data> + </Cell> + <Cell ss:StyleID="ce66"> + <Data ss:Type="String">Date Heading</Data> + </Cell> + <Cell ss:StyleID="ce66"> + <Data ss:Type="String">Time Heading</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce66"> + <Data ss:Type="String">Adjusted Date</Data> + </Cell> + <Cell ss:StyleID="ce66"> + <Data ss:Type="String">Adjusted Number</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce13"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String"/> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">Adjusted Number</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">Third Heading</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">1</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">1.11</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">1.11</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">2</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">4.44</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">2.22</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">3</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">9.99</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">3.33</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">4</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">17.76</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">4.44</Data> + </Cell> + </Row> + <Row ss:Index="8"> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">5</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">27.75</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">5.55</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">6</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">39.96</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">6.66</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">7</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">54.39</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">7.77</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">8</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">71.04</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">8.88</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">9</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">89.91</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">9.99</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">10</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">111</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">11.1</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">11</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">134.31</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">12.21</Data> + </Cell> + </Row> + <Row> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">12</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">159.84</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">13.32</Data> + </Cell> + </Row> + <Row ss:Index="16"> + <Cell ss:StyleID="ce13"> + <Data ss:Type="String">13</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">1.11</Data> + </Cell> + <Cell ss:StyleID="ce13"> + <Data ss:Type="Number">-1.11</Data> + </Cell> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">ABC</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">1</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">1.11</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2001-01-01T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T01:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D3]-[.B3]"> + <Data ss:Type="DateTime">2000-12-31T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B3]*[.C3]"> + <Data ss:Type="Number">1.11</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">A</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B3]&amp;[.J3]"> + <Data ss:Type="String">1A</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">BCD</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">2</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">2.22</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2002-02-02T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T02:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D4]-[.B4]"> + <Data ss:Type="DateTime">2002-01-31T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B4]*[.C4]"> + <Data ss:Type="Number">4.44</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">B</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B4]&amp;[.J4]"> + <Data ss:Type="String">2B</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">CDE</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">3</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">3.33</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2003-03-03T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T03:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D5]-[.B5]"> + <Data ss:Type="DateTime">2003-02-28T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B5]*[.C5]"> + <Data ss:Type="Number">9.99</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">C</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B5]&amp;[.J5]"> + <Data ss:Type="String">3C</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">DEF</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">4</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">4.44</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2004-04-03T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T04:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D6]-[.B6]"> + <Data ss:Type="DateTime">2004-03-30T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B6]*[.C6]"> + <Data ss:Type="Number">17.76</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">D</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B6]&amp;[.J6]"> + <Data ss:Type="String">4D</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">EFG</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">5</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">5.55</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2005-05-04T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T05:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D7]-[.B7]"> + <Data ss:Type="DateTime">2005-04-29T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B7]*[.C7]"> + <Data ss:Type="Number">27.75</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">E</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B7]&amp;[.J7]"> + <Data ss:Type="String">5E</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">FGH</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">6</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">6.66</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2006-06-05T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T06:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D8]-[.B8]"> + <Data ss:Type="DateTime">2006-05-30T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B8]*[.C8]"> + <Data ss:Type="Number">39.96</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">F</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B8]&amp;[.J8]"> + <Data ss:Type="String">6F</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">GHI</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">7</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">7.77</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2007-07-06T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T07:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D9]-[.B9]"> + <Data ss:Type="DateTime">2007-06-29T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B9]*[.C9]"> + <Data ss:Type="Number">54.39</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">G</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B9]&amp;[.J9]"> + <Data ss:Type="String">7G</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:Index="24" ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">HIJ</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">8</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">8.88</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2008-08-07T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T08:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D10]-[.B10]"> + <Data ss:Type="DateTime">2008-07-30T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B10]*[.C10]"> + <Data ss:Type="Number">71.04</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">H</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B10]&amp;[.J10]"> + <Data ss:Type="String">8H</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">IJK</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">9</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">9.99</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2009-09-08T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T09:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D11]-[.B11]"> + <Data ss:Type="DateTime">2009-08-30T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B11]*[.C11]"> + <Data ss:Type="Number">89.91</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">I</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B11]&amp;[.J11]"> + <Data ss:Type="String">9I</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">JKL</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">10</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">11.1</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2010-10-09T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T10:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D12]-[.B12]"> + <Data ss:Type="DateTime">2010-09-29T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B12]*[.C12]"> + <Data ss:Type="Number">111</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">J</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B12]&amp;[.J12]"> + <Data ss:Type="String">10J</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">KLM</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">11</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">12.21</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2011-11-11T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T11:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D13]-[.B13]"> + <Data ss:Type="DateTime">2011-10-31T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B13]*[.C13]"> + <Data ss:Type="Number">134.31</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">K</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B13]&amp;[.J13]"> + <Data ss:Type="String">11K</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">LMN</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">12</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">13.32</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">2012-12-12T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T288:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D14]-[.B14]"> + <Data ss:Type="DateTime">2012-11-30T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B14]*[.C14]"> + <Data ss:Type="Number">159.84</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">L</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B14]&amp;[.J14]"> + <Data ss:Type="String">12L</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">ZYX</Data> + </Cell> + <Cell ss:StyleID="ce5"> + <Data ss:Type="Number">-1</Data> + </Cell> + <Cell ss:StyleID="ce67"> + <Data ss:Type="Number">-1.11</Data> + </Cell> + <Cell ss:StyleID="ce68"> + <Data ss:Type="DateTime">1999-12-01T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce69"> + <Data ss:Type="DateTime">1899-12-31T23:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce68" ss:Formula="of:=[.D15]-[.B15]"> + <Data ss:Type="DateTime">1999-12-02T00:00:00.000</Data> + </Cell> + <Cell ss:StyleID="ce67" ss:Formula="of:=[.B15]*[.C15]"> + <Data ss:Type="Number">1.11</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"> + <Data ss:Type="String">M</Data> + </Cell> + <Cell ss:StyleID="ce5" ss:Formula="of:=[.B15]&amp;[.J15]"> + <Data ss:Type="String">-1M</Data> + </Cell> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + <Cell ss:StyleID="ce5"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:AutoFitHeight="0" ss:Height="14.9953"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + <Row ss:Index="65550" ss:Height="12.8409"> + <Cell ss:Index="1024" ss:StyleID="ce13"/> + </Row> + </Table> + <x:WorksheetOptions/> + </ss:Worksheet> +</Workbook> \ No newline at end of file diff --git a/Examples/GnumericTest.gnumeric b/samples/templates/GnumericTest.gnumeric similarity index 100% rename from Examples/GnumericTest.gnumeric rename to samples/templates/GnumericTest.gnumeric diff --git a/Examples/OOCalcTest.ods b/samples/templates/OOCalcTest.ods similarity index 100% rename from Examples/OOCalcTest.ods rename to samples/templates/OOCalcTest.ods diff --git a/Examples/SylkTest.slk b/samples/templates/SylkTest.slk similarity index 100% rename from Examples/SylkTest.slk rename to samples/templates/SylkTest.slk diff --git a/samples/templates/chartSpreadsheet.php b/samples/templates/chartSpreadsheet.php new file mode 100644 index 00000000..8b3a3564 --- /dev/null +++ b/samples/templates/chartSpreadsheet.php @@ -0,0 +1,90 @@ +<?php + +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$worksheet = $spreadsheet->getActiveSheet(); +$worksheet->fromArray( + [ + ['', 2010, 2011, 2012], + ['Q1', 12, 15, 21], + ['Q2', 56, 73, 86], + ['Q3', 52, 61, 69], + ['Q4', 30, 32, 0], + ] +); + +// Set the Labels for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesLabels = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 +]; +// Set the X-Axis Labels +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$xAxisTickValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 +]; +// Set the Data values for each data series we want to plot +// Datatype +// Cell reference for data +// Format Code +// Number of datapoints in series +// Data values +// Data Marker +$dataSeriesValues = [ + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), +]; + +// Build the dataseries +$series = new \PhpSpreadsheet\Chart\DataSeries( + \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping + range(0, count($dataSeriesValues) - 1), // plotOrder + $dataSeriesLabels, // plotLabel + $xAxisTickValues, // plotCategory + $dataSeriesValues // plotValues +); +// Set additional dataseries parameters +// Make it a horizontal bar rather than a vertical column graph +$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_BAR); + +// Set the series in the plot area +$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +// Set the chart legend +$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); + +$title = new \PhpSpreadsheet\Chart\Title('Test Bar Chart'); +$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); + +// Create the chart +$chart = new \PhpSpreadsheet\Chart( + 'chart1', // name + $title, // title + $legend, // legend + $plotArea, // plotArea + true, // plotVisibleOnly + 0, // displayBlanksAs + null, // xAxisLabel + $yAxisLabel // yAxisLabel +); + +// Set the position where the chart should appear in the worksheet +$chart->setTopLeftPosition('A7'); +$chart->setBottomRightPosition('H20'); + +// Add the chart to the worksheet +$worksheet->addChart($chart); + +return $spreadsheet; diff --git a/samples/templates/largeSpreadsheet.php b/samples/templates/largeSpreadsheet.php new file mode 100644 index 00000000..75ac99b8 --- /dev/null +++ b/samples/templates/largeSpreadsheet.php @@ -0,0 +1,54 @@ +<?php + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Create a first sheet +$helper->log('Add data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Firstname'); +$spreadsheet->getActiveSheet()->setCellValue('B1', 'Lastname'); +$spreadsheet->getActiveSheet()->setCellValue('C1', 'Phone'); +$spreadsheet->getActiveSheet()->setCellValue('D1', 'Fax'); +$spreadsheet->getActiveSheet()->setCellValue('E1', 'Is Client ?'); + +// Hide "Phone" and "fax" column +$helper->log("Hide 'Phone' and 'fax' columns"); +$spreadsheet->getActiveSheet()->getColumnDimension('C')->setVisible(false); +$spreadsheet->getActiveSheet()->getColumnDimension('D')->setVisible(false); + +// Set outline levels +$helper->log('Set outline levels'); +$spreadsheet->getActiveSheet()->getColumnDimension('E')->setOutlineLevel(1) + ->setVisible(false) + ->setCollapsed(true); + +// Freeze panes +$helper->log('Freeze panes'); +$spreadsheet->getActiveSheet()->freezePane('A2'); + +// Rows to repeat at top +$helper->log('Rows to repeat at top'); +$spreadsheet->getActiveSheet()->getPageSetup()->setRowsToRepeatAtTopByStartAndEnd(1, 1); + +// Add data +for ($i = 2; $i <= 5000; ++$i) { + $spreadsheet->getActiveSheet()->setCellValue('A' . $i, "FName $i") + ->setCellValue('B' . $i, "LName $i") + ->setCellValue('C' . $i, "PhoneNo $i") + ->setCellValue('D' . $i, "FaxNo $i") + ->setCellValue('E' . $i, true); +} + +return $spreadsheet; diff --git a/samples/templates/sampleSpreadsheet.php b/samples/templates/sampleSpreadsheet.php new file mode 100644 index 00000000..2b90af33 --- /dev/null +++ b/samples/templates/sampleSpreadsheet.php @@ -0,0 +1,358 @@ +<?php + +// Create new Spreadsheet object +$helper->log('Create new Spreadsheet object'); +$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + +// Set document properties +$helper->log('Set document properties'); +$spreadsheet->getProperties()->setCreator('Maarten Balliauw') + ->setLastModifiedBy('Maarten Balliauw') + ->setTitle('Office 2007 XLSX Test Document') + ->setSubject('Office 2007 XLSX Test Document') + ->setDescription('Test document for Office 2007 XLSX, generated using PHP classes.') + ->setKeywords('office 2007 openxml php') + ->setCategory('Test result file'); + +// Create a first sheet, representing sales data +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(0); +$spreadsheet->getActiveSheet()->setCellValue('B1', 'Invoice'); +$spreadsheet->getActiveSheet()->setCellValue('D1', \PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, date('m'), date('d'), date('Y')))); +$spreadsheet->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15); +$spreadsheet->getActiveSheet()->setCellValue('E1', '#12566'); + +$spreadsheet->getActiveSheet()->setCellValue('A3', 'Product Id'); +$spreadsheet->getActiveSheet()->setCellValue('B3', 'Description'); +$spreadsheet->getActiveSheet()->setCellValue('C3', 'Price'); +$spreadsheet->getActiveSheet()->setCellValue('D3', 'Amount'); +$spreadsheet->getActiveSheet()->setCellValue('E3', 'Total'); + +$spreadsheet->getActiveSheet()->setCellValue('A4', '1001'); +$spreadsheet->getActiveSheet()->setCellValue('B4', 'PHP for dummies'); +$spreadsheet->getActiveSheet()->setCellValue('C4', '20'); +$spreadsheet->getActiveSheet()->setCellValue('D4', '1'); +$spreadsheet->getActiveSheet()->setCellValue('E4', '=IF(D4<>"",C4*D4,"")'); + +$spreadsheet->getActiveSheet()->setCellValue('A5', '1012'); +$spreadsheet->getActiveSheet()->setCellValue('B5', 'OpenXML for dummies'); +$spreadsheet->getActiveSheet()->setCellValue('C5', '22'); +$spreadsheet->getActiveSheet()->setCellValue('D5', '2'); +$spreadsheet->getActiveSheet()->setCellValue('E5', '=IF(D5<>"",C5*D5,"")'); + +$spreadsheet->getActiveSheet()->setCellValue('E6', '=IF(D6<>"",C6*D6,"")'); +$spreadsheet->getActiveSheet()->setCellValue('E7', '=IF(D7<>"",C7*D7,"")'); +$spreadsheet->getActiveSheet()->setCellValue('E8', '=IF(D8<>"",C8*D8,"")'); +$spreadsheet->getActiveSheet()->setCellValue('E9', '=IF(D9<>"",C9*D9,"")'); + +$spreadsheet->getActiveSheet()->setCellValue('D11', 'Total excl.:'); +$spreadsheet->getActiveSheet()->setCellValue('E11', '=SUM(E4:E9)'); + +$spreadsheet->getActiveSheet()->setCellValue('D12', 'VAT:'); +$spreadsheet->getActiveSheet()->setCellValue('E12', '=E11*0.21'); + +$spreadsheet->getActiveSheet()->setCellValue('D13', 'Total incl.:'); +$spreadsheet->getActiveSheet()->setCellValue('E13', '=E11+E12'); + +// Add comment +$helper->log('Add comments'); + +$spreadsheet->getActiveSheet()->getComment('E11')->setAuthor('PhpSpreadsheet'); +$commentRichText = $spreadsheet->getActiveSheet()->getComment('E11')->getText()->createTextRun('PhpSpreadsheet:'); +$commentRichText->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getComment('E11')->getText()->createTextRun("\r\n"); +$spreadsheet->getActiveSheet()->getComment('E11')->getText()->createTextRun('Total amount on the current invoice, excluding VAT.'); + +$spreadsheet->getActiveSheet()->getComment('E12')->setAuthor('PhpSpreadsheet'); +$commentRichText = $spreadsheet->getActiveSheet()->getComment('E12')->getText()->createTextRun('PhpSpreadsheet:'); +$commentRichText->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getComment('E12')->getText()->createTextRun("\r\n"); +$spreadsheet->getActiveSheet()->getComment('E12')->getText()->createTextRun('Total amount of VAT on the current invoice.'); + +$spreadsheet->getActiveSheet()->getComment('E13')->setAuthor('PhpSpreadsheet'); +$commentRichText = $spreadsheet->getActiveSheet()->getComment('E13')->getText()->createTextRun('PhpSpreadsheet:'); +$commentRichText->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getComment('E13')->getText()->createTextRun("\r\n"); +$spreadsheet->getActiveSheet()->getComment('E13')->getText()->createTextRun('Total amount on the current invoice, including VAT.'); +$spreadsheet->getActiveSheet()->getComment('E13')->setWidth('100pt'); +$spreadsheet->getActiveSheet()->getComment('E13')->setHeight('100pt'); +$spreadsheet->getActiveSheet()->getComment('E13')->setMarginLeft('150pt'); +$spreadsheet->getActiveSheet()->getComment('E13')->getFillColor()->setRGB('EEEEEE'); + +// Add rich-text string +$helper->log('Add rich-text string'); +$richText = new \PhpSpreadsheet\RichText(); +$richText->createText('This invoice is '); + +$payable = $richText->createTextRun('payable within thirty days after the end of the month'); +$payable->getFont()->setBold(true); +$payable->getFont()->setItalic(true); +$payable->getFont()->setColor(new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_DARKGREEN)); + +$richText->createText(', unless specified otherwise on the invoice.'); + +$spreadsheet->getActiveSheet()->getCell('A18')->setValue($richText); + +// Merge cells +$helper->log('Merge cells'); +$spreadsheet->getActiveSheet()->mergeCells('A18:E22'); +$spreadsheet->getActiveSheet()->mergeCells('A28:B28'); // Just to test... +$spreadsheet->getActiveSheet()->unmergeCells('A28:B28'); // Just to test... +// Protect cells +$helper->log('Protect cells'); +$spreadsheet->getActiveSheet()->getProtection()->setSheet(true); // Needs to be set to true in order to enable any worksheet protection! +$spreadsheet->getActiveSheet()->protectCells('A3:E13', 'PhpSpreadsheet'); + +// Set cell number formats +$helper->log('Set cell number formats'); +$spreadsheet->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); + +// Set column widths +$helper->log('Set column widths'); +$spreadsheet->getActiveSheet()->getColumnDimension('B')->setAutoSize(true); +$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(12); +$spreadsheet->getActiveSheet()->getColumnDimension('E')->setWidth(12); + +// Set fonts +$helper->log('Set fonts'); +$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara'); +$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setSize(20); +$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); +$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_WHITE); + +$spreadsheet->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_WHITE); +$spreadsheet->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_WHITE); + +$spreadsheet->getActiveSheet()->getStyle('D13')->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getStyle('E13')->getFont()->setBold(true); + +// Set alignments +$helper->log('Set alignments'); +$spreadsheet->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); +$spreadsheet->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); +$spreadsheet->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); + +$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY); +$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); + +$spreadsheet->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true); + +// Set thin black border outline around column +$helper->log('Set thin black border outline around column'); +$styleThinBlackBorderOutline = [ + 'borders' => [ + 'outline' => [ + 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + 'color' => ['argb' => 'FF000000'], + ], + ], +]; +$spreadsheet->getActiveSheet()->getStyle('A4:E10')->applyFromArray($styleThinBlackBorderOutline); + +// Set thick brown border outline around "Total" +$helper->log('Set thick brown border outline around Total'); +$styleThickBrownBorderOutline = [ + 'borders' => [ + 'outline' => [ + 'style' => \PhpSpreadsheet\Style\Border::BORDER_THICK, + 'color' => ['argb' => 'FF993300'], + ], + ], +]; +$spreadsheet->getActiveSheet()->getStyle('D13:E13')->applyFromArray($styleThickBrownBorderOutline); + +// Set fills +$helper->log('Set fills'); +$spreadsheet->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(\PhpSpreadsheet\Style\Fill::FILL_SOLID); +$spreadsheet->getActiveSheet()->getStyle('A1:E1')->getFill()->getStartColor()->setARGB('FF808080'); + +// Set style for header row using alternative method +$helper->log('Set style for header row using alternative method'); +$spreadsheet->getActiveSheet()->getStyle('A3:E3')->applyFromArray( + [ + 'font' => [ + 'bold' => true, + ], + 'alignment' => [ + 'horizontal' => \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT, + ], + 'borders' => [ + 'top' => [ + 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + ], + ], + 'fill' => [ + 'type' => \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR, + 'rotation' => 90, + 'startcolor' => [ + 'argb' => 'FFA0A0A0', + ], + 'endcolor' => [ + 'argb' => 'FFFFFFFF', + ], + ], + ] +); + +$spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray( + [ + 'alignment' => [ + 'horizontal' => \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, + ], + 'borders' => [ + 'left' => [ + 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + ], + ], + ] +); + +$spreadsheet->getActiveSheet()->getStyle('B3')->applyFromArray( + [ + 'alignment' => [ + 'horizontal' => \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, + ], + ] +); + +$spreadsheet->getActiveSheet()->getStyle('E3')->applyFromArray( + [ + 'borders' => [ + 'right' => [ + 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + ], + ], + ] +); + +// Unprotect a cell +$helper->log('Unprotect a cell'); +$spreadsheet->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); + +// Add a hyperlink to the sheet +$helper->log('Add a hyperlink to an external website'); +$spreadsheet->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net'); +$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net'); +$spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website'); +$spreadsheet->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); + +$helper->log('Add a hyperlink to another cell on a different worksheet within the workbook'); +$spreadsheet->getActiveSheet()->setCellValue('E27', 'Terms and conditions'); +$spreadsheet->getActiveSheet()->getCell('E27')->getHyperlink()->setUrl("sheet://'Terms and conditions'!A1"); +$spreadsheet->getActiveSheet()->getCell('E27')->getHyperlink()->setTooltip('Review terms and conditions'); +$spreadsheet->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); + +// Add a drawing to the worksheet +$helper->log('Add a drawing to the worksheet'); +$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing->setName('Logo'); +$drawing->setDescription('Logo'); +$drawing->setPath(__DIR__ . '/../images/officelogo.jpg'); +$drawing->setHeight(36); +$drawing->setWorksheet($spreadsheet->getActiveSheet()); + +// Add a drawing to the worksheet +$helper->log('Add a drawing to the worksheet'); +$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing->setName('Paid'); +$drawing->setDescription('Paid'); +$drawing->setPath(__DIR__ . '/../images/paid.png'); +$drawing->setCoordinates('B15'); +$drawing->setOffsetX(110); +$drawing->setRotation(25); +$drawing->getShadow()->setVisible(true); +$drawing->getShadow()->setDirection(45); +$drawing->setWorksheet($spreadsheet->getActiveSheet()); + +// Add a drawing to the worksheet +$helper->log('Add a drawing to the worksheet'); +$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing->setName('PhpSpreadsheet logo'); +$drawing->setDescription('PhpSpreadsheet logo'); +$drawing->setPath(__DIR__ . '/../images/PhpSpreadsheet_logo.gif'); +$drawing->setHeight(36); +$drawing->setCoordinates('D24'); +$drawing->setOffsetX(10); +$drawing->setWorksheet($spreadsheet->getActiveSheet()); + +// Play around with inserting and removing rows and columns +$helper->log('Play around with inserting and removing rows and columns'); +$spreadsheet->getActiveSheet()->insertNewRowBefore(6, 10); +$spreadsheet->getActiveSheet()->removeRow(6, 10); +$spreadsheet->getActiveSheet()->insertNewColumnBefore('E', 5); +$spreadsheet->getActiveSheet()->removeColumn('E', 5); + +// Set header and footer. When no different headers for odd/even are used, odd header is assumed. +$helper->log('Set header/footer'); +$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddHeader('&L&BInvoice&RPrinted on &D'); +$spreadsheet->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $spreadsheet->getProperties()->getTitle() . '&RPage &P of &N'); + +// Set page orientation and size +$helper->log('Set page orientation and size'); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); +$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); + +// Rename first worksheet +$helper->log('Rename first worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Invoice'); + +// Create a new worksheet, after the default sheet +$helper->log('Create a second Worksheet object'); +$spreadsheet->createSheet(); + +// Llorem ipsum... +$sLloremIpsum = 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus eget ante. Sed cursus nunc semper tortor. Aliquam luctus purus non elit. Fusce vel elit commodo sapien dignissim dignissim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur accumsan magna sed massa. Nullam bibendum quam ac ipsum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin augue. Praesent malesuada justo sed orci. Pellentesque lacus ligula, sodales quis, ultricies a, ultricies vitae, elit. Sed luctus consectetuer dolor. Vivamus vel sem ut nisi sodales accumsan. Nunc et felis. Suspendisse semper viverra odio. Morbi at odio. Integer a orci a purus venenatis molestie. Nam mattis. Praesent rhoncus, nisi vel mattis auctor, neque nisi faucibus sem, non dapibus elit pede ac nisl. Cras turpis.'; + +// Add some data to the second sheet, resembling some different data types +$helper->log('Add some data'); +$spreadsheet->setActiveSheetIndex(1); +$spreadsheet->getActiveSheet()->setCellValue('A1', 'Terms and conditions'); +$spreadsheet->getActiveSheet()->setCellValue('A3', $sLloremIpsum); +$spreadsheet->getActiveSheet()->setCellValue('A4', $sLloremIpsum); +$spreadsheet->getActiveSheet()->setCellValue('A5', $sLloremIpsum); +$spreadsheet->getActiveSheet()->setCellValue('A6', $sLloremIpsum); + +// Set the worksheet tab color +$helper->log('Set the worksheet tab color'); +$spreadsheet->getActiveSheet()->getTabColor()->setARGB('FF0094FF'); + +// Set alignments +$helper->log('Set alignments'); +$spreadsheet->getActiveSheet()->getStyle('A3:A6')->getAlignment()->setWrapText(true); + +// Set column widths +$helper->log('Set column widths'); +$spreadsheet->getActiveSheet()->getColumnDimension('A')->setWidth(80); + +// Set fonts +$helper->log('Set fonts'); +$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara'); +$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setSize(20); +$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); +$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); + +$spreadsheet->getActiveSheet()->getStyle('A3:A6')->getFont()->setSize(8); + +// Add a drawing to the worksheet +$helper->log('Add a drawing to the worksheet'); +$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing->setName('Terms and conditions'); +$drawing->setDescription('Terms and conditions'); +$drawing->setPath(__DIR__ . '/../images/termsconditions.jpg'); +$drawing->setCoordinates('B14'); +$drawing->setWorksheet($spreadsheet->getActiveSheet()); + +// Set page orientation and size +$helper->log('Set page orientation and size'); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); +$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); + +// Rename second worksheet +$helper->log('Rename second worksheet'); +$spreadsheet->getActiveSheet()->setTitle('Terms and conditions'); + +// Set active sheet index to the first sheet, so Excel opens this as the first sheet +$spreadsheet->setActiveSheetIndex(0); + +return $spreadsheet; diff --git a/src/PhpSpreadsheet/Helper/Sample.php b/src/PhpSpreadsheet/Helper/Sample.php new file mode 100644 index 00000000..922937be --- /dev/null +++ b/src/PhpSpreadsheet/Helper/Sample.php @@ -0,0 +1,185 @@ +<?php + +namespace PhpSpreadsheet\Helper; + +use PhpSpreadsheet\IOFactory; +use PhpSpreadsheet\Spreadsheet; + +class Sample +{ + /** + * Returns wether we run on CLI or browser + * @return bool + */ + public function isCli() + { + return PHP_SAPI === 'cli'; + } + + /** + * Return the filename currently being executed + * @return string + */ + public function getScriptFilename() + { + return basename($_SERVER['SCRIPT_FILENAME'], '.php'); + } + + /** + * Wether we are executing the index page + * @return bool + */ + public function isIndex() + { + return $this->getScriptFilename() === 'index'; + } + + /** + * Return the page title + * @return string + */ + public function getPageTitle() + { + return $this->isIndex() ? 'PHPSpreadsheet' : $this->getScriptFilename(); + } + + /** + * Return the page heading + * @return string + */ + public function getPageHeading() + { + return $this->isIndex() ? '' : '<h1>' . str_replace('_', ' ', $this->getScriptFilename()) . '</h1>'; + } + + /** + * Returns an array of all known samples + * @return string[] [$name => $path] + */ + public function getSamples() + { + // Populate samples + $files = []; + foreach (glob(realpath(__DIR__ . '/../../../samples') . '/*.php') as $file) { + $info = pathinfo($file); + $name = str_replace('_', ' ', preg_replace('/(|\.php)/', '', $info['filename'])); + if (preg_match('/^\d+/', $name)) { + $files[$name] = $file; + } + } + + return $files; + } + + /** + * Write documents + * + * @param Spreadsheet $spreadsheet + * @param string $filename + * @param array $writers + */ + public function write(Spreadsheet $spreadsheet, $filename, array $writers = ['Excel2007' => 'xlsx', 'Excel5' => 'xls']) + { + // Set active sheet index to the first sheet, so Excel opens this as the first sheet + $spreadsheet->setActiveSheetIndex(0); + + // Write documents + foreach ($writers as $format => $extension) { + $path = $this->getFilename($filename, $extension); + if (!is_null($extension)) { + $writer = IOFactory::createWriter($spreadsheet, $format); + $callStartTime = microtime(true); + $writer->save($path); + $this->logWrite($writer, $path, $callStartTime); + } else { + throw new \Exception('Missing extension'); + } + } + + $this->logEndingNotes(); + } + + /** + * Returns the temporary directory and make sure it exists + * @return string + */ + private function getTemporaryFolder() + { + $tempFolder = sys_get_temp_dir() . '/phpspreadsheet'; + if (!is_dir($tempFolder)) { + mkdir($tempFolder); + } + + return $tempFolder; + } + + /** + * Returns the filename that should be used for sample output + * @param string $filename + * @param string $extension + * @return string + */ + public function getFilename($filename, $extension = 'xlsx') + { + return $this->getTemporaryFolder() . '/' . str_replace('.php', '.' . $extension, basename($filename)); + } + + /** + * Return a random temporary file name + * @param string $extension + * @return string + */ + public function getTemporaryFilename($extension = 'xlsx') + { + $temporaryFilename = tempnam($this->getTemporaryFolder(), 'phpspreadsheet-'); + unlink($temporaryFilename); + + return $temporaryFilename . '.' . $extension; + } + + public function log($message) + { + echo date('H:i:s '), $message, EOL; + } + + /** + * Log ending notes + */ + public function logEndingNotes() + { + // Do not show execution time for index + $this->log('Peak memory usage: ' . (memory_get_peak_usage(true) / 1024 / 1024) . 'MB'); + } + + /** + * Log a line about the write operation + * @param \PhpSpreadsheet\Writer\IWriter $writer + * @param string $path + * @param float $callStartTime + */ + public function logWrite(\PhpSpreadsheet\Writer\IWriter $writer, $path, $callStartTime) + { + $callEndTime = microtime(true); + $callTime = $callEndTime - $callStartTime; + $reflection = new \ReflectionClass($writer); + $format = $reflection->getShortName(); + $message = "Write {$format} format to <code>{$path}</code> in " . sprintf('%.4f', $callTime) . ' seconds'; + + $this->log($message); + } + + /** + * Log a line about the read operation + * @param string $format + * @param string $path + * @param float $callStartTime + */ + public function logRead($format, $path, $callStartTime) + { + $callEndTime = microtime(true); + $callTime = $callEndTime - $callStartTime; + $message = "Read {$format} format from <code>{$path}</code> in " . sprintf('%.4f', $callTime) . ' seconds'; + + $this->log($message); + } +} diff --git a/src/PhpSpreadsheet/Reader/Excel2003XML.php b/src/PhpSpreadsheet/Reader/Excel2003XML.php index 0d59eeca..e9c2fac1 100644 --- a/src/PhpSpreadsheet/Reader/Excel2003XML.php +++ b/src/PhpSpreadsheet/Reader/Excel2003XML.php @@ -598,7 +598,7 @@ class Excel2003XML extends BaseReader implements IReader } if (isset($cell->Data)) { $cellValue = $cellData = $cell->Data; - $type = \PhpSpreadsheet\Cell_DataType::TYPE_NULL; + $type = \PhpSpreadsheet\Cell\DataType::TYPE_NULL; $cellData_ss = $cellData->attributes($namespaces['ss']); if (isset($cellData_ss['Type'])) { $cellDataType = $cellData_ss['Type']; diff --git a/src/PhpSpreadsheet/Reader/Excel2007.php b/src/PhpSpreadsheet/Reader/Excel2007.php index 2d40fde3..023a3148 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007.php +++ b/src/PhpSpreadsheet/Reader/Excel2007.php @@ -1878,8 +1878,9 @@ class Excel2007 extends BaseReader implements IReader /** * @param \PhpSpreadsheet\Style $docStyle + * @param \stdClass $style */ - private static function readStyle($docStyle, \PhpSpreadsheet\Style $style) + private static function readStyle($docStyle, \stdClass $style) { $docStyle->getNumberFormat()->setFormatCode($style->numFmt); diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index 33b45d61..f119cfa7 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -2,6 +2,7 @@ namespace PhpSpreadsheet\Reader; +use DateTimeZone; use PhpSpreadsheet\Spreadsheet; /** diff --git a/src/PhpSpreadsheet/Reader/OOCalc.php b/src/PhpSpreadsheet/Reader/OOCalc.php index 92a49fe3..2717b07b 100644 --- a/src/PhpSpreadsheet/Reader/OOCalc.php +++ b/src/PhpSpreadsheet/Reader/OOCalc.php @@ -2,6 +2,9 @@ namespace PhpSpreadsheet\Reader; +use DateTime; +use DateTimeZone; + /** * Copyright (c) 2006 - 2016 PhpSpreadsheet * diff --git a/src/PhpSpreadsheet/Settings.php b/src/PhpSpreadsheet/Settings.php index df960b9f..ca52de89 100644 --- a/src/PhpSpreadsheet/Settings.php +++ b/src/PhpSpreadsheet/Settings.php @@ -28,8 +28,8 @@ class Settings { /** constants */ /** Available Zip library classes */ - const PCLZIP = '\\PhpSpreadsheet\\Shared\\ZipArchive'; - const ZIPARCHIVE = '\\ZipArchive'; + const PCLZIP = \PhpSpreadsheet\Shared\ZipArchive::class; + const ZIPARCHIVE = \ZipArchive::class; /** Optional Chart Rendering libraries */ const CHART_RENDERER_JPGRAPH = 'JpGraph'; diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index a52eccab..d8d95319 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -2,10 +2,10 @@ namespace PhpSpreadsheet\Writer; -use Spreadsheet\Calculation; -use Spreadsheet\Shared\Font; -use Spreadsheet\Shared\StringHelper; -use Spreadsheet\Spreadsheet; +use PhpSpreadsheet\Calculation; +use PhpSpreadsheet\Shared\Font; +use PhpSpreadsheet\Shared\StringHelper; +use PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2015 Spreadsheet @@ -83,7 +83,7 @@ class HTML extends BaseWriter implements IWriter /** * Default font * - * @var \Spreadsheet\Style\Font + * @var \PhpSpreadsheet\Style\Font */ private $defaultFont; @@ -144,7 +144,7 @@ class HTML extends BaseWriter implements IWriter * Save Spreadsheet to file * * @param string $pFilename - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { @@ -162,7 +162,7 @@ class HTML extends BaseWriter implements IWriter // Open file $fileHandle = fopen($pFilename, 'wb+'); if ($fileHandle === false) { - throw new \Spreadsheet\Writer\Exception("Could not open file $pFilename for writing."); + throw new \PhpSpreadsheet\Writer\Exception("Could not open file $pFilename for writing."); } // Write headers @@ -195,12 +195,12 @@ class HTML extends BaseWriter implements IWriter private function mapVAlign($vAlign) { switch ($vAlign) { - case \Spreadsheet\Style\Alignment::VERTICAL_BOTTOM: + case \PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM: return 'bottom'; - case \Spreadsheet\Style\Alignment::VERTICAL_TOP: + case \PhpSpreadsheet\Style\Alignment::VERTICAL_TOP: return 'top'; - case \Spreadsheet\Style\Alignment::VERTICAL_CENTER: - case \Spreadsheet\Style\Alignment::VERTICAL_JUSTIFY: + case \PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER: + case \PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY: return 'middle'; default: return 'baseline'; @@ -216,16 +216,16 @@ class HTML extends BaseWriter implements IWriter private function mapHAlign($hAlign) { switch ($hAlign) { - case \Spreadsheet\Style\Alignment::HORIZONTAL_GENERAL: + case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL: return false; - case \Spreadsheet\Style\Alignment::HORIZONTAL_LEFT: + case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT: return 'left'; - case \Spreadsheet\Style\Alignment::HORIZONTAL_RIGHT: + case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT: return 'right'; - case \Spreadsheet\Style\Alignment::HORIZONTAL_CENTER: - case \Spreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS: + case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER: + case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS: return 'center'; - case \Spreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY: + case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY: return 'justify'; default: return false; @@ -241,33 +241,33 @@ class HTML extends BaseWriter implements IWriter private function mapBorderStyle($borderStyle) { switch ($borderStyle) { - case \Spreadsheet\Style\Border::BORDER_NONE: + case \PhpSpreadsheet\Style\Border::BORDER_NONE: return 'none'; - case \Spreadsheet\Style\Border::BORDER_DASHDOT: + case \PhpSpreadsheet\Style\Border::BORDER_DASHDOT: return '1px dashed'; - case \Spreadsheet\Style\Border::BORDER_DASHDOTDOT: + case \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: return '1px dotted'; - case \Spreadsheet\Style\Border::BORDER_DASHED: + case \PhpSpreadsheet\Style\Border::BORDER_DASHED: return '1px dashed'; - case \Spreadsheet\Style\Border::BORDER_DOTTED: + case \PhpSpreadsheet\Style\Border::BORDER_DOTTED: return '1px dotted'; - case \Spreadsheet\Style\Border::BORDER_DOUBLE: + case \PhpSpreadsheet\Style\Border::BORDER_DOUBLE: return '3px double'; - case \Spreadsheet\Style\Border::BORDER_HAIR: + case \PhpSpreadsheet\Style\Border::BORDER_HAIR: return '1px solid'; - case \Spreadsheet\Style\Border::BORDER_MEDIUM: + case \PhpSpreadsheet\Style\Border::BORDER_MEDIUM: return '2px solid'; - case \Spreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: + case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: return '2px dashed'; - case \Spreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: + case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: return '2px dotted'; - case \Spreadsheet\Style\Border::BORDER_MEDIUMDASHED: + case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: return '2px dashed'; - case \Spreadsheet\Style\Border::BORDER_SLANTDASHDOT: + case \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: return '2px dashed'; - case \Spreadsheet\Style\Border::BORDER_THICK: + case \PhpSpreadsheet\Style\Border::BORDER_THICK: return '3px solid'; - case \Spreadsheet\Style\Border::BORDER_THIN: + case \PhpSpreadsheet\Style\Border::BORDER_THIN: return '1px solid'; default: // map others to thin @@ -335,14 +335,14 @@ class HTML extends BaseWriter implements IWriter * Generate HTML header * * @param bool $pIncludeStyles Include styles? - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ public function generateHTMLHeader($pIncludeStyles = false) { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \Spreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Construct HTML @@ -394,14 +394,14 @@ class HTML extends BaseWriter implements IWriter /** * Generate sheet data * - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ public function generateSheetData() { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \Spreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Ensure that Spans have been calculated? @@ -428,10 +428,10 @@ class HTML extends BaseWriter implements IWriter // Get worksheet dimension $dimension = explode(':', $sheet->calculateWorksheetDimension()); - $dimension[0] = \Spreadsheet\Cell::coordinateFromString($dimension[0]); - $dimension[0][0] = \Spreadsheet\Cell::columnIndexFromString($dimension[0][0]) - 1; - $dimension[1] = \Spreadsheet\Cell::coordinateFromString($dimension[1]); - $dimension[1][0] = \Spreadsheet\Cell::columnIndexFromString($dimension[1][0]) - 1; + $dimension[0] = \PhpSpreadsheet\Cell::coordinateFromString($dimension[0]); + $dimension[0][0] = \PhpSpreadsheet\Cell::columnIndexFromString($dimension[0][0]) - 1; + $dimension[1] = \PhpSpreadsheet\Cell::coordinateFromString($dimension[1]); + $dimension[1][0] = \PhpSpreadsheet\Cell::columnIndexFromString($dimension[1][0]) - 1; // row min,max $rowMin = $dimension[0][1]; @@ -475,7 +475,7 @@ class HTML extends BaseWriter implements IWriter while ($column++ < $dimension[1][0]) { // Cell exists? if ($sheet->cellExistsByColumnAndRow($column, $row)) { - $rowData[$column] = \Spreadsheet\Cell::stringFromColumnIndex($column) . $row; + $rowData[$column] = \PhpSpreadsheet\Cell::stringFromColumnIndex($column) . $row; } else { $rowData[$column] = ''; } @@ -513,14 +513,14 @@ class HTML extends BaseWriter implements IWriter /** * Generate sheet tabs * - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ public function generateNavigation() { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \Spreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Fetch sheets @@ -552,7 +552,7 @@ class HTML extends BaseWriter implements IWriter return $html; } - private function extendRowsForChartsAndImages(\Spreadsheet\Worksheet $pSheet, $row) + private function extendRowsForChartsAndImages(\PhpSpreadsheet\Worksheet $pSheet, $row) { $rowMax = $row; $colMax = 'A'; @@ -560,11 +560,11 @@ class HTML extends BaseWriter implements IWriter foreach ($pSheet->getChartCollection() as $chart) { if ($chart instanceof \PhpSpreadsheet\Chart) { $chartCoordinates = $chart->getTopLeftPosition(); - $chartTL = \Spreadsheet\Cell::coordinateFromString($chartCoordinates['cell']); - $chartCol = \Spreadsheet\Cell::columnIndexFromString($chartTL[0]); + $chartTL = \PhpSpreadsheet\Cell::coordinateFromString($chartCoordinates['cell']); + $chartCol = \PhpSpreadsheet\Cell::columnIndexFromString($chartTL[0]); if ($chartTL[1] > $rowMax) { $rowMax = $chartTL[1]; - if ($chartCol > \Spreadsheet\Cell::columnIndexFromString($colMax)) { + if ($chartCol > \PhpSpreadsheet\Cell::columnIndexFromString($colMax)) { $colMax = $chartTL[0]; } } @@ -573,12 +573,12 @@ class HTML extends BaseWriter implements IWriter } foreach ($pSheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof \Spreadsheet\Worksheet\Drawing) { - $imageTL = \Spreadsheet\Cell::coordinateFromString($drawing->getCoordinates()); - $imageCol = \Spreadsheet\Cell::columnIndexFromString($imageTL[0]); + if ($drawing instanceof \PhpSpreadsheet\Worksheet\Drawing) { + $imageTL = \PhpSpreadsheet\Cell::coordinateFromString($drawing->getCoordinates()); + $imageCol = \PhpSpreadsheet\Cell::columnIndexFromString($imageTL[0]); if ($imageTL[1] > $rowMax) { $rowMax = $imageTL[1]; - if ($imageCol > \Spreadsheet\Cell::columnIndexFromString($colMax)) { + if ($imageCol > \PhpSpreadsheet\Cell::columnIndexFromString($colMax)) { $colMax = $imageTL[0]; } } @@ -606,19 +606,19 @@ class HTML extends BaseWriter implements IWriter /** * Generate image tag in cell * - * @param \Spreadsheet\Worksheet $pSheet \Spreadsheet\Worksheet + * @param \PhpSpreadsheet\Worksheet $pSheet \PhpSpreadsheet\Worksheet * @param string $coordinates Cell coordinates - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ - private function writeImageInCell(\Spreadsheet\Worksheet $pSheet, $coordinates) + private function writeImageInCell(\PhpSpreadsheet\Worksheet $pSheet, $coordinates) { // Construct HTML $html = ''; // Write images foreach ($pSheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof \Spreadsheet\Worksheet\Drawing) { + if ($drawing instanceof \PhpSpreadsheet\Worksheet\Drawing) { if ($drawing->getCoordinates() == $coordinates) { $filename = $drawing->getPath(); @@ -662,7 +662,7 @@ class HTML extends BaseWriter implements IWriter $imageData . '" border="0" />'; $html .= '</div>'; } - } elseif ($drawing instanceof \Spreadsheet\Worksheet\MemoryDrawing) { + } elseif ($drawing instanceof \PhpSpreadsheet\Worksheet\MemoryDrawing) { if ($drawing->getCoordinates() != $coordinates) { continue; } @@ -687,12 +687,12 @@ class HTML extends BaseWriter implements IWriter /** * Generate chart tag in cell * - * @param \Spreadsheet\Worksheet $pSheet \Spreadsheet\Worksheet + * @param \PhpSpreadsheet\Worksheet $pSheet \PhpSpreadsheet\Worksheet * @param string $coordinates Cell coordinates - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ - private function writeChartInCell(\Spreadsheet\Worksheet $pSheet, $coordinates) + private function writeChartInCell(\PhpSpreadsheet\Worksheet $pSheet, $coordinates) { // Construct HTML $html = ''; @@ -702,7 +702,7 @@ class HTML extends BaseWriter implements IWriter if ($chart instanceof \PhpSpreadsheet\Chart) { $chartCoordinates = $chart->getTopLeftPosition(); if ($chartCoordinates['cell'] == $coordinates) { - $chartFileName = \Spreadsheet\Shared\File::sysGetTempDir() . '/' . uniqid() . '.png'; + $chartFileName = \PhpSpreadsheet\Shared\File::sysGetTempDir() . '/' . uniqid() . '.png'; if (!$chart->render($chartFileName)) { return; } @@ -735,14 +735,14 @@ class HTML extends BaseWriter implements IWriter * Generate CSS styles * * @param bool $generateSurroundingHTML Generate surrounding HTML tags? (&lt;style&gt; and &lt;/style&gt;) - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ public function generateStyles($generateSurroundingHTML = true) { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \Spreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Build CSS @@ -777,14 +777,14 @@ class HTML extends BaseWriter implements IWriter * Build CSS styles * * @param bool $generateSurroundingHTML Generate surrounding HTML style? (html { }) - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return array */ public function buildCSS($generateSurroundingHTML = true) { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \Spreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Cached? @@ -860,7 +860,7 @@ class HTML extends BaseWriter implements IWriter $sheet->calculateColumnWidths(); // col elements, initialize - $highestColumnIndex = \Spreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()) - 1; + $highestColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()) - 1; $column = -1; while ($column++ < $highestColumnIndex) { $this->columnWidths[$sheetIndex][$column] = 42; // approximation @@ -869,9 +869,9 @@ class HTML extends BaseWriter implements IWriter // col elements, loop through columnDimensions and set width foreach ($sheet->getColumnDimensions() as $columnDimension) { - if (($width = \Spreadsheet\Shared\Drawing::cellDimensionToPixels($columnDimension->getWidth(), $this->defaultFont)) >= 0) { - $width = \Spreadsheet\Shared\Drawing::pixelsToPoints($width); - $column = \Spreadsheet\Cell::columnIndexFromString($columnDimension->getColumnIndex()) - 1; + if (($width = \PhpSpreadsheet\Shared\Drawing::cellDimensionToPixels($columnDimension->getWidth(), $this->defaultFont)) >= 0) { + $width = \PhpSpreadsheet\Shared\Drawing::pixelsToPoints($width); + $column = \PhpSpreadsheet\Cell::columnIndexFromString($columnDimension->getColumnIndex()) - 1; $this->columnWidths[$sheetIndex][$column] = $width; $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = $width . 'pt'; @@ -931,10 +931,10 @@ class HTML extends BaseWriter implements IWriter /** * Create CSS style * - * @param \Spreadsheet\Style $pStyle + * @param \PhpSpreadsheet\Style $pStyle * @return array */ - private function createCSSStyle(\Spreadsheet\Style $pStyle) + private function createCSSStyle(\PhpSpreadsheet\Style $pStyle) { // Construct CSS $css = ''; @@ -952,12 +952,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\Spreadsheet\Style\Alignment) + * Create CSS style (\PhpSpreadsheet\Style\Alignment) * - * @param \Spreadsheet\Style\Alignment $pStyle \Spreadsheet\Style\Alignment + * @param \PhpSpreadsheet\Style\Alignment $pStyle \PhpSpreadsheet\Style\Alignment * @return array */ - private function createCSSStyleAlignment(\Spreadsheet\Style\Alignment $pStyle) + private function createCSSStyleAlignment(\PhpSpreadsheet\Style\Alignment $pStyle) { // Construct CSS $css = []; @@ -975,12 +975,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\Spreadsheet\Style\Font) + * Create CSS style (\PhpSpreadsheet\Style\Font) * - * @param \Spreadsheet\Style\Font $pStyle \Spreadsheet\Style\Font + * @param \PhpSpreadsheet\Style\Font $pStyle \PhpSpreadsheet\Style\Font * @return array */ - private function createCSSStyleFont(\Spreadsheet\Style\Font $pStyle) + private function createCSSStyleFont(\PhpSpreadsheet\Style\Font $pStyle) { // Construct CSS $css = []; @@ -989,9 +989,9 @@ class HTML extends BaseWriter implements IWriter if ($pStyle->getBold()) { $css['font-weight'] = 'bold'; } - if ($pStyle->getUnderline() != \Spreadsheet\Style\Font::UNDERLINE_NONE && $pStyle->getStrikethrough()) { + if ($pStyle->getUnderline() != \PhpSpreadsheet\Style\Font::UNDERLINE_NONE && $pStyle->getStrikethrough()) { $css['text-decoration'] = 'underline line-through'; - } elseif ($pStyle->getUnderline() != \Spreadsheet\Style\Font::UNDERLINE_NONE) { + } elseif ($pStyle->getUnderline() != \PhpSpreadsheet\Style\Font::UNDERLINE_NONE) { $css['text-decoration'] = 'underline'; } elseif ($pStyle->getStrikethrough()) { $css['text-decoration'] = 'line-through'; @@ -1008,12 +1008,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\Spreadsheet\Style\Borders) + * Create CSS style (\PhpSpreadsheet\Style\Borders) * - * @param \Spreadsheet\Style\Borders $pStyle \Spreadsheet\Style\Borders + * @param \PhpSpreadsheet\Style\Borders $pStyle \PhpSpreadsheet\Style\Borders * @return array */ - private function createCSSStyleBorders(\Spreadsheet\Style\Borders $pStyle) + private function createCSSStyleBorders(\PhpSpreadsheet\Style\Borders $pStyle) { // Construct CSS $css = []; @@ -1028,12 +1028,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\Spreadsheet\Style\Border) + * Create CSS style (\PhpSpreadsheet\Style\Border) * - * @param \Spreadsheet\Style\Border $pStyle \Spreadsheet\Style\Border + * @param \PhpSpreadsheet\Style\Border $pStyle \PhpSpreadsheet\Style\Border * @return string */ - private function createCSSStyleBorder(\Spreadsheet\Style\Border $pStyle) + private function createCSSStyleBorder(\PhpSpreadsheet\Style\Border $pStyle) { // Create CSS - add !important to non-none border styles for merged cells $borderStyle = $this->mapBorderStyle($pStyle->getBorderStyle()); @@ -1043,18 +1043,18 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\Spreadsheet\Style\Fill) + * Create CSS style (\PhpSpreadsheet\Style\Fill) * - * @param \Spreadsheet\Style\Fill $pStyle \Spreadsheet\Style\Fill + * @param \PhpSpreadsheet\Style\Fill $pStyle \PhpSpreadsheet\Style\Fill * @return array */ - private function createCSSStyleFill(\Spreadsheet\Style\Fill $pStyle) + private function createCSSStyleFill(\PhpSpreadsheet\Style\Fill $pStyle) { // Construct HTML $css = []; // Create CSS - $value = $pStyle->getFillType() == \Spreadsheet\Style\Fill::FILL_NONE ? + $value = $pStyle->getFillType() == \PhpSpreadsheet\Style\Fill::FILL_NONE ? 'white' : '#' . $pStyle->getStartColor()->getRGB(); $css['background-color'] = $value; @@ -1077,8 +1077,8 @@ class HTML extends BaseWriter implements IWriter /** * Generate table header * - * @param \Spreadsheet\Worksheet $pSheet The worksheet for the table we are writing - * @throws \Spreadsheet\Writer\Exception + * @param \PhpSpreadsheet\Worksheet $pSheet The worksheet for the table we are writing + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ private function generateTableHeader($pSheet) @@ -1104,7 +1104,7 @@ class HTML extends BaseWriter implements IWriter } // Write <col> elements - $highestColumnIndex = \Spreadsheet\Cell::columnIndexFromString($pSheet->getHighestColumn()) - 1; + $highestColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($pSheet->getHighestColumn()) - 1; $i = -1; while ($i++ < $highestColumnIndex) { if (!$this->isPdf) { @@ -1124,7 +1124,7 @@ class HTML extends BaseWriter implements IWriter /** * Generate table footer * - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception */ private function generateTableFooter() { @@ -1136,13 +1136,13 @@ class HTML extends BaseWriter implements IWriter /** * Generate row * - * @param \Spreadsheet\Worksheet $pSheet \Spreadsheet\Worksheet + * @param \PhpSpreadsheet\Worksheet $pSheet \PhpSpreadsheet\Worksheet * @param array $pValues Array containing cells in a row * @param int $pRow Row number (0-based) - * @throws \Spreadsheet\Writer\Exception + * @throws \PhpSpreadsheet\Writer\Exception * @return string */ - private function generateRow(\Spreadsheet\Worksheet $pSheet, $pValues = null, $pRow = 0, $cellType = 'td') + private function generateRow(\PhpSpreadsheet\Worksheet $pSheet, $pValues = null, $pRow = 0, $cellType = 'td') { if (is_array($pValues)) { // Construct HTML @@ -1182,7 +1182,7 @@ class HTML extends BaseWriter implements IWriter $colNum = 0; foreach ($pValues as $cellAddress) { $cell = ($cellAddress > '') ? $pSheet->getCell($cellAddress) : ''; - $coordinate = \Spreadsheet\Cell::stringFromColumnIndex($colNum) . ($pRow + 1); + $coordinate = \PhpSpreadsheet\Cell::stringFromColumnIndex($colNum) . ($pRow + 1); if (!$this->useInlineCss) { $cssClass = ''; $cssClass = 'column' . $colNum; @@ -1204,19 +1204,19 @@ class HTML extends BaseWriter implements IWriter // initialize $cellData = '&nbsp;'; - // \Spreadsheet\Cell - if ($cell instanceof \Spreadsheet\Cell) { + // \PhpSpreadsheet\Cell + if ($cell instanceof \PhpSpreadsheet\Cell) { $cellData = ''; if (is_null($cell->getParent())) { $cell->attach($pSheet); } // Value - if ($cell->getValue() instanceof \Spreadsheet\RichText) { + if ($cell->getValue() instanceof \PhpSpreadsheet\RichText) { // Loop through rich text elements $elements = $cell->getValue()->getRichTextElements(); foreach ($elements as $element) { // Rich text start? - if ($element instanceof \Spreadsheet\RichText\Run) { + if ($element instanceof \PhpSpreadsheet\RichText\Run) { $cellData .= '<span style="' . $this->assembleCSS($this->createCSSStyleFont($element->getFont())) . '">'; if ($element->getFont()->getSuperScript()) { @@ -1230,7 +1230,7 @@ class HTML extends BaseWriter implements IWriter $cellText = $element->getText(); $cellData .= htmlspecialchars($cellText); - if ($element instanceof \Spreadsheet\RichText\Run) { + if ($element instanceof \PhpSpreadsheet\RichText\Run) { if ($element->getFont()->getSuperScript()) { $cellData .= '</sup>'; } elseif ($element->getFont()->getSubScript()) { @@ -1242,13 +1242,13 @@ class HTML extends BaseWriter implements IWriter } } else { if ($this->preCalculateFormulas) { - $cellData = \Spreadsheet\Style\NumberFormat::toFormattedString( + $cellData = \PhpSpreadsheet\Style\NumberFormat::toFormattedString( $cell->getCalculatedValue(), $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(), [$this, 'formatColor'] ); } else { - $cellData = \Spreadsheet\Style\NumberFormat::toFormattedString( + $cellData = \PhpSpreadsheet\Style\NumberFormat::toFormattedString( $cell->getValue(), $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(), [$this, 'formatColor'] @@ -1286,7 +1286,7 @@ class HTML extends BaseWriter implements IWriter // General horizontal alignment: Actual horizontal alignment depends on dataType $sharedStyle = $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex()); - if ($sharedStyle->getAlignment()->getHorizontal() == \Spreadsheet\Style\Alignment::HORIZONTAL_GENERAL + if ($sharedStyle->getAlignment()->getHorizontal() == \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL && isset($this->cssStyles['.' . $cell->getDataType()]['text-align'])) { $cssClass['text-align'] = $this->cssStyles['.' . $cell->getDataType()]['text-align']; } @@ -1312,7 +1312,7 @@ class HTML extends BaseWriter implements IWriter // Also apply style from last cell in merge to fix borders - // relies on !important for non-none border declarations in createCSSStyleBorder - $endCellCoord = \Spreadsheet\Cell::stringFromColumnIndex($colNum + $colSpan - 1) . ($pRow + $rowSpan); + $endCellCoord = \PhpSpreadsheet\Cell::stringFromColumnIndex($colNum + $colSpan - 1) . ($pRow + $rowSpan); if (!$this->useInlineCss) { $cssClass .= ' style' . $pSheet->getCell($endCellCoord)->getXfIndex(); } @@ -1381,7 +1381,7 @@ class HTML extends BaseWriter implements IWriter // Return return $html; } else { - throw new \Spreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } @@ -1520,15 +1520,15 @@ class HTML extends BaseWriter implements IWriter // loop through all Excel merged cells foreach ($sheet->getMergeCells() as $cells) { - list($cells) = \Spreadsheet\Cell::splitRange($cells); + list($cells) = \PhpSpreadsheet\Cell::splitRange($cells); $first = $cells[0]; $last = $cells[1]; - list($fc, $fr) = \Spreadsheet\Cell::coordinateFromString($first); - $fc = \Spreadsheet\Cell::columnIndexFromString($fc) - 1; + list($fc, $fr) = \PhpSpreadsheet\Cell::coordinateFromString($first); + $fc = \PhpSpreadsheet\Cell::columnIndexFromString($fc) - 1; - list($lc, $lr) = \Spreadsheet\Cell::coordinateFromString($last); - $lc = \Spreadsheet\Cell::columnIndexFromString($lc) - 1; + list($lc, $lr) = \PhpSpreadsheet\Cell::coordinateFromString($last); + $lc = \PhpSpreadsheet\Cell::columnIndexFromString($lc) - 1; // loop through the individual cells in the individual merge $r = $fr - 1; @@ -1558,7 +1558,7 @@ class HTML extends BaseWriter implements IWriter // Identify which rows should be omitted in HTML. These are the rows where all the cells // participate in a merge and the where base cells are somewhere above. - $countColumns = \Spreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()); + $countColumns = \PhpSpreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()); foreach ($candidateSpannedRow as $rowIndex) { if (isset($this->isSpannedCell[$sheetIndex][$rowIndex])) { if (count($this->isSpannedCell[$sheetIndex][$rowIndex]) == $countColumns) { @@ -1592,7 +1592,7 @@ class HTML extends BaseWriter implements IWriter $this->spansAreCalculated = true; } - private function setMargins(\Spreadsheet\Worksheet $pSheet) + private function setMargins(\PhpSpreadsheet\Worksheet $pSheet) { $htmlPage = '@page { '; $htmlBody = 'body { '; diff --git a/src/PhpSpreadsheet/Writer/PDF.php b/src/PhpSpreadsheet/Writer/PDF.php index c716d25e..83031391 100644 --- a/src/PhpSpreadsheet/Writer/PDF.php +++ b/src/PhpSpreadsheet/Writer/PDF.php @@ -2,6 +2,8 @@ namespace PhpSpreadsheet\Writer; +use PhpSpreadsheet\Spreadsheet; + /** * Copyright (c) 2006 - 2015 PhpSpreadsheet * @@ -39,7 +41,7 @@ class PDF implements IWriter * @param \PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object * @throws Exception when PDF library is not configured */ - public function __construct(PhpSpreadsheet $spreadsheet) + public function __construct(Spreadsheet $spreadsheet) { $pdfLibraryName = \PhpSpreadsheet\Settings::getPdfRendererName(); if (is_null($pdfLibraryName)) { @@ -56,7 +58,7 @@ class PDF implements IWriter set_include_path(get_include_path() . PATH_SEPARATOR . $pdfLibraryPath); } - $rendererName = 'PDF\\' . $pdfLibraryName; + $rendererName = '\\PhpSpreadsheet\\Writer\\PDF\\' . $pdfLibraryName; $this->renderer = new $rendererName($spreadsheet); } diff --git a/tests/PhpSpreadsheetTests/SampleTest.php b/tests/PhpSpreadsheetTests/SampleTest.php new file mode 100644 index 00000000..97c5062e --- /dev/null +++ b/tests/PhpSpreadsheetTests/SampleTest.php @@ -0,0 +1,38 @@ +<?php + +namespace PhpSpreadsheetTests; + +class SampleTest extends \PHPUnit_Framework_TestCase +{ + /** + * @runInSeparateProcess + * @preserveGlobalState disabled + * @dataProvider providerSample + */ + public function testSample($sample) + { + // Suppress output to console + $this->setOutputCallback(function () { + }); + + require $sample; + } + + public function providerSample() + { + $skipped = [ + '07 Reader PCLZip', // Excel2007 cannot load file, leading to OpenOffice trying to and crashing. This is a bug that should be fixed + '20 Read OOCalc with PCLZip', // Crash: Call to undefined method PhpSpreadsheet\Shared\ZipArchive::statName() + '21 Pdf', // for now we don't have 3rdparty libs to tests PDF, but it should be added + ]; + $helper = new \PhpSpreadsheet\Helper\Sample(); + $samples = []; + foreach ($helper->getSamples() as $name => $sample) { + if (!in_array($name, $skipped)) { + $samples[$name] = [$sample]; + } + } + + return $samples; + } +} diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 1b2011b9..bd444395 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -3,7 +3,7 @@ * @copyright Copyright (C) 2011-2014 PhpSpreadsheet. All rights reserved. * @author Mark Baker */ -chdir(dirname(__FILE__)); +chdir(__DIR__); setlocale(LC_ALL, 'en_US.utf8'); @@ -12,37 +12,18 @@ date_default_timezone_set('Europe/London'); // Define path to application directory defined('APPLICATION_PATH') - || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../src')); - -// Define path to application tests directory -defined('APPLICATION_TESTS_PATH') - || define('APPLICATION_TESTS_PATH', realpath(dirname(__FILE__))); - -// Define application environment -defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'ci'); + || define('APPLICATION_PATH', realpath(__DIR__ . '/../src')); // Ensure library/ is on include_path set_include_path(implode(PATH_SEPARATOR, [ realpath(APPLICATION_PATH . '/../src'), './', - dirname(__FILE__), + __DIR__, get_include_path(), ])); if (!defined('PHPSPREADSHEET_ROOT')) { define('PHPSPREADSHEET_ROOT', APPLICATION_PATH . '/'); } + require_once PHPSPREADSHEET_ROOT . 'Bootstrap.php'; - -/* - * @todo Sort out xdebug in vagrant so that this works in all sandboxes - * For now, it is safer to test for it rather then remove it. - */ -echo "PhpSpreadsheet tests beginning\n"; - -if (extension_loaded('xdebug')) { - echo "Xdebug extension loaded and running\n"; - xdebug_enable(); -} else { - echo 'Xdebug not found, you should run the following at the command line: echo "zend_extension=/usr/lib64/php/modules/xdebug.so" > /etc/php.d/xdebug.ini' . "\n"; -} From 47cde0dadc9552c058c214e0d4254d1c20b9b33b Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Thu, 1 Sep 2016 02:18:12 +0900 Subject: [PATCH 28/29] Introduce vendor prefix `PhpOffice` to namespace --- composer.json | 4 +- samples/01_Simple.php | 2 +- samples/01_Simple_PCLZip.php | 4 +- samples/01_Simple_download_ods.php | 6 +- samples/01_Simple_download_pdf.php | 14 +- samples/01_Simple_download_xls.php | 6 +- samples/01_Simple_download_xlsx.php | 6 +- samples/02_Types.php | 22 +- samples/03_Formulas.php | 2 +- samples/04_Printing.php | 10 +- samples/06_Largescale_with_cellcaching.php | 4 +- .../06_Largescale_with_cellcaching_sqlite.php | 4 +- ...06_Largescale_with_cellcaching_sqlite3.php | 4 +- samples/07_Reader.php | 4 +- samples/07_Reader_PCLZip.php | 6 +- samples/08_Conditional_formatting.php | 36 +- samples/08_Conditional_formatting_2.php | 20 +- samples/09_Pagebreaks.php | 4 +- samples/10_Autofilter.php | 2 +- samples/10_Autofilter_selection_1.php | 28 +- samples/10_Autofilter_selection_2.php | 32 +- samples/10_Autofilter_selection_display.php | 28 +- samples/11_Documentsecurity.php | 2 +- samples/12_CellProtection.php | 4 +- samples/13_Calculation.php | 4 +- samples/13_CalculationCyclicFormulae.php | 4 +- samples/14_Excel5.php | 2 +- samples/15_Datavalidation.php | 14 +- samples/16_Csv.php | 6 +- samples/17_Html.php | 2 +- samples/18_Extendedcalculation.php | 6 +- samples/19_Namedrange.php | 6 +- samples/20_Read_Excel2003XML.php | 2 +- samples/20_Read_Excel5.php | 4 +- samples/20_Read_Gnumeric.php | 2 +- samples/20_Read_OOCalc.php | 2 +- samples/20_Read_OOCalc_with_PCLZip.php | 4 +- samples/20_Read_Sylk.php | 2 +- samples/21_Pdf.php | 10 +- samples/22_Heavily_formatted.php | 10 +- samples/23_Sharedstyles.php | 18 +- samples/24_Readfilter.php | 8 +- samples/25_In_memory_image.php | 8 +- samples/26_Utf8.php | 12 +- samples/27_Images_excel5.php | 2 +- samples/28_Iterator.php | 4 +- samples/29_Advanced_value_binder.php | 6 +- samples/30_Template.php | 4 +- samples/31_Document_properties_write.php | 10 +- samples/31_Document_properties_write_xls.php | 10 +- samples/32_Chart_read_write.php | 4 +- samples/32_Chart_read_write_HTML.php | 8 +- samples/32_Chart_read_write_PDF.php | 16 +- samples/33_Chart_create_area.php | 36 +- samples/33_Chart_create_bar.php | 4 +- samples/33_Chart_create_bar_stacked.php | 38 +- samples/33_Chart_create_column.php | 38 +- samples/33_Chart_create_column_2.php | 40 +- samples/33_Chart_create_composite.php | 48 +- samples/33_Chart_create_line.php | 36 +- samples/33_Chart_create_multiple_charts.php | 68 +-- samples/33_Chart_create_pie.php | 44 +- samples/33_Chart_create_radar.php | 34 +- samples/33_Chart_create_scatter.php | 36 +- samples/33_Chart_create_stock.php | 42 +- samples/34_Chart_update.php | 8 +- samples/35_Chart_render.php | 6 +- samples/37_Page_layout_view.php | 4 +- samples/38_Clone_worksheet.php | 2 +- samples/39_Dropdown.php | 14 +- samples/40_Duplicate_style.php | 6 +- samples/42_RichText.php | 4 +- samples/43_Merge_workbooks.php | 4 +- samples/44_Worksheet_info.php | 6 +- samples/Header.php | 2 +- samples/templates/chartSpreadsheet.php | 34 +- samples/templates/largeSpreadsheet.php | 2 +- samples/templates/sampleSpreadsheet.php | 74 +-- src/Autoloader.php | 9 +- src/Bootstrap.php | 2 +- .../CachedObjectStorage/APC.php | 42 +- .../CachedObjectStorage/CacheBase.php | 34 +- .../CachedObjectStorage/DiscISAM.php | 26 +- .../CachedObjectStorage/ICache.php | 30 +- .../CachedObjectStorage/Igbinary.php | 16 +- .../CachedObjectStorage/Memcache.php | 50 +- .../CachedObjectStorage/Memory.php | 18 +- .../CachedObjectStorage/MemoryGZip.php | 16 +- .../CachedObjectStorage/MemorySerialized.php | 16 +- .../CachedObjectStorage/PHPTemp.php | 24 +- .../CachedObjectStorage/SQLite.php | 56 +- .../CachedObjectStorage/SQLite3.php | 58 +- .../CachedObjectStorage/Wincache.php | 44 +- .../CachedObjectStorageFactory.php | 8 +- .../CalcEngine/CyclicReferenceStack.php | 2 +- src/PhpSpreadsheet/CalcEngine/Logger.php | 2 +- src/PhpSpreadsheet/Calculation.php | 574 +++++++++--------- src/PhpSpreadsheet/Calculation/Categories.php | 2 +- src/PhpSpreadsheet/Calculation/Database.php | 6 +- src/PhpSpreadsheet/Calculation/DateTime.php | 86 +-- .../Calculation/Engineering.php | 2 +- src/PhpSpreadsheet/Calculation/Exception.php | 4 +- .../Calculation/ExceptionHandler.php | 4 +- src/PhpSpreadsheet/Calculation/Financial.php | 8 +- .../Calculation/FormulaParser.php | 2 +- .../Calculation/FormulaToken.php | 2 +- src/PhpSpreadsheet/Calculation/Functions.php | 6 +- src/PhpSpreadsheet/Calculation/Logical.php | 14 +- src/PhpSpreadsheet/Calculation/LookupRef.php | 46 +- src/PhpSpreadsheet/Calculation/MathTrig.php | 24 +- .../Calculation/Statistical.php | 40 +- src/PhpSpreadsheet/Calculation/TextData.php | 52 +- .../Calculation/Token/Stack.php | 4 +- src/PhpSpreadsheet/Cell.php | 4 +- .../Cell/AdvancedValueBinder.php | 36 +- src/PhpSpreadsheet/Cell/DataType.php | 8 +- src/PhpSpreadsheet/Cell/DataValidation.php | 2 +- .../Cell/DefaultValueBinder.php | 12 +- src/PhpSpreadsheet/Cell/Hyperlink.php | 2 +- src/PhpSpreadsheet/Cell/IValueBinder.php | 6 +- src/PhpSpreadsheet/Chart.php | 4 +- src/PhpSpreadsheet/Chart/Axis.php | 2 +- src/PhpSpreadsheet/Chart/DataSeries.php | 4 +- src/PhpSpreadsheet/Chart/DataSeriesValues.php | 20 +- src/PhpSpreadsheet/Chart/Exception.php | 4 +- src/PhpSpreadsheet/Chart/GridLines.php | 2 +- src/PhpSpreadsheet/Chart/Layout.php | 2 +- src/PhpSpreadsheet/Chart/Legend.php | 2 +- src/PhpSpreadsheet/Chart/PlotArea.php | 4 +- src/PhpSpreadsheet/Chart/Properties.php | 2 +- src/PhpSpreadsheet/Chart/Renderer/JpGraph.php | 42 +- src/PhpSpreadsheet/Chart/Title.php | 2 +- src/PhpSpreadsheet/Comment.php | 2 +- src/PhpSpreadsheet/Document/Properties.php | 2 +- src/PhpSpreadsheet/Document/Security.php | 6 +- src/PhpSpreadsheet/Exception.php | 4 +- src/PhpSpreadsheet/HashTable.php | 6 +- src/PhpSpreadsheet/Helper/HTML.php | 8 +- src/PhpSpreadsheet/Helper/Sample.php | 10 +- src/PhpSpreadsheet/IComparable.php | 2 +- src/PhpSpreadsheet/IOFactory.php | 6 +- src/PhpSpreadsheet/NamedRange.php | 4 +- src/PhpSpreadsheet/Reader/BaseReader.php | 2 +- src/PhpSpreadsheet/Reader/CSV.php | 12 +- .../Reader/DefaultReadFilter.php | 2 +- src/PhpSpreadsheet/Reader/Excel2003XML.php | 94 +-- src/PhpSpreadsheet/Reader/Excel2007.php | 304 +++++----- src/PhpSpreadsheet/Reader/Excel2007/Chart.php | 40 +- src/PhpSpreadsheet/Reader/Excel2007/Theme.php | 2 +- src/PhpSpreadsheet/Reader/Excel5.php | 308 +++++----- src/PhpSpreadsheet/Reader/Excel5/Color.php | 4 +- .../Reader/Excel5/Color/BIFF5.php | 2 +- .../Reader/Excel5/Color/BIFF8.php | 2 +- .../Reader/Excel5/Color/BuiltIn.php | 2 +- .../Reader/Excel5/ErrorCode.php | 2 +- src/PhpSpreadsheet/Reader/Excel5/Escher.php | 114 ++-- src/PhpSpreadsheet/Reader/Excel5/MD5.php | 2 +- src/PhpSpreadsheet/Reader/Excel5/RC4.php | 2 +- .../Reader/Excel5/Style/Border.php | 4 +- .../Reader/Excel5/Style/FillPattern.php | 4 +- src/PhpSpreadsheet/Reader/Exception.php | 4 +- src/PhpSpreadsheet/Reader/Gnumeric.php | 152 ++--- src/PhpSpreadsheet/Reader/HTML.php | 18 +- src/PhpSpreadsheet/Reader/IReadFilter.php | 2 +- src/PhpSpreadsheet/Reader/IReader.php | 2 +- src/PhpSpreadsheet/Reader/OOCalc.php | 92 +-- src/PhpSpreadsheet/Reader/SYLK.php | 52 +- src/PhpSpreadsheet/ReferenceHelper.php | 4 +- src/PhpSpreadsheet/RichText.php | 4 +- src/PhpSpreadsheet/RichText/ITextElement.php | 4 +- src/PhpSpreadsheet/RichText/Run.php | 14 +- src/PhpSpreadsheet/RichText/TextElement.php | 4 +- src/PhpSpreadsheet/Settings.php | 32 +- src/PhpSpreadsheet/Shared/CodePage.php | 10 +- src/PhpSpreadsheet/Shared/Date.php | 64 +- src/PhpSpreadsheet/Shared/Drawing.php | 22 +- src/PhpSpreadsheet/Shared/Escher.php | 2 +- .../Shared/Escher/DgContainer.php | 2 +- .../Escher/DgContainer/SpgrContainer.php | 8 +- .../DgContainer/SpgrContainer/SpContainer.php | 10 +- .../Shared/Escher/DggContainer.php | 2 +- .../Escher/DggContainer/BstoreContainer.php | 2 +- .../DggContainer/BstoreContainer/BSE.php | 6 +- .../DggContainer/BstoreContainer/BSE/Blip.php | 8 +- src/PhpSpreadsheet/Shared/Excel5.php | 56 +- src/PhpSpreadsheet/Shared/File.php | 4 +- src/PhpSpreadsheet/Shared/Font.php | 42 +- .../Shared/JAMA/CholeskyDecomposition.php | 10 +- .../Shared/JAMA/EigenvalueDecomposition.php | 2 +- .../Shared/JAMA/LUDecomposition.php | 14 +- src/PhpSpreadsheet/Shared/JAMA/Matrix.php | 156 ++--- .../Shared/JAMA/QRDecomposition.php | 8 +- .../JAMA/SingularValueDecomposition.php | 2 +- .../Shared/JAMA/utils/Maths.php | 2 +- src/PhpSpreadsheet/Shared/OLE.php | 14 +- .../Shared/OLE/ChainedBlockStream.php | 2 +- src/PhpSpreadsheet/Shared/OLE/PPS.php | 6 +- src/PhpSpreadsheet/Shared/OLE/PPS/File.php | 6 +- src/PhpSpreadsheet/Shared/OLE/PPS/Root.php | 52 +- src/PhpSpreadsheet/Shared/OLERead.php | 8 +- src/PhpSpreadsheet/Shared/PCLZip/PclZip.php | 2 +- src/PhpSpreadsheet/Shared/PasswordHasher.php | 2 +- src/PhpSpreadsheet/Shared/StringHelper.php | 16 +- src/PhpSpreadsheet/Shared/TimeZone.php | 6 +- src/PhpSpreadsheet/Shared/Trend/BestFit.php | 2 +- .../Shared/Trend/ExponentialBestFit.php | 2 +- .../Shared/Trend/LinearBestFit.php | 2 +- .../Shared/Trend/LogarithmicBestFit.php | 2 +- .../Shared/Trend/PolynomialBestFit.php | 2 +- .../Shared/Trend/PowerBestFit.php | 2 +- src/PhpSpreadsheet/Shared/Trend/Trend.php | 6 +- src/PhpSpreadsheet/Shared/XMLWriter.php | 2 +- src/PhpSpreadsheet/Shared/ZipArchive.php | 8 +- .../Shared/ZipStreamWrapper.php | 8 +- src/PhpSpreadsheet/Spreadsheet.php | 2 +- src/PhpSpreadsheet/Style.php | 8 +- src/PhpSpreadsheet/Style/Alignment.php | 16 +- src/PhpSpreadsheet/Style/Border.php | 16 +- src/PhpSpreadsheet/Style/Borders.php | 34 +- src/PhpSpreadsheet/Style/Color.php | 8 +- src/PhpSpreadsheet/Style/Conditional.php | 16 +- src/PhpSpreadsheet/Style/Fill.php | 14 +- src/PhpSpreadsheet/Style/Font.php | 14 +- src/PhpSpreadsheet/Style/NumberFormat.php | 20 +- src/PhpSpreadsheet/Style/Protection.php | 8 +- src/PhpSpreadsheet/Style/Supervisor.php | 8 +- src/PhpSpreadsheet/Worksheet.php | 8 +- src/PhpSpreadsheet/Worksheet/AutoFilter.php | 96 +-- .../Worksheet/AutoFilter/Column.php | 32 +- .../Worksheet/AutoFilter/Column/Rule.php | 32 +- src/PhpSpreadsheet/Worksheet/BaseDrawing.php | 24 +- src/PhpSpreadsheet/Worksheet/CellIterator.php | 10 +- src/PhpSpreadsheet/Worksheet/Column.php | 10 +- .../Worksheet/ColumnCellIterator.php | 28 +- .../Worksheet/ColumnDimension.php | 2 +- .../Worksheet/ColumnIterator.php | 36 +- src/PhpSpreadsheet/Worksheet/Dimension.php | 6 +- src/PhpSpreadsheet/Worksheet/Drawing.php | 8 +- .../Worksheet/Drawing/Shadow.php | 16 +- src/PhpSpreadsheet/Worksheet/HeaderFooter.php | 10 +- .../Worksheet/HeaderFooterDrawing.php | 8 +- src/PhpSpreadsheet/Worksheet/Iterator.php | 12 +- .../Worksheet/MemoryDrawing.php | 4 +- src/PhpSpreadsheet/Worksheet/PageMargins.php | 2 +- src/PhpSpreadsheet/Worksheet/PageSetup.php | 34 +- src/PhpSpreadsheet/Worksheet/Protection.php | 4 +- src/PhpSpreadsheet/Worksheet/Row.php | 10 +- .../Worksheet/RowCellIterator.php | 42 +- src/PhpSpreadsheet/Worksheet/RowDimension.php | 2 +- src/PhpSpreadsheet/Worksheet/RowIterator.php | 22 +- src/PhpSpreadsheet/Worksheet/SheetView.php | 14 +- src/PhpSpreadsheet/Writer/BaseWriter.php | 2 +- src/PhpSpreadsheet/Writer/CSV.php | 18 +- src/PhpSpreadsheet/Writer/Excel2007.php | 136 ++--- src/PhpSpreadsheet/Writer/Excel2007/Chart.php | 106 ++-- .../Writer/Excel2007/Comments.php | 42 +- .../Writer/Excel2007/ContentTypes.php | 38 +- .../Writer/Excel2007/DocProps.php | 32 +- .../Writer/Excel2007/Drawing.php | 92 +-- src/PhpSpreadsheet/Writer/Excel2007/Rels.php | 64 +- .../Writer/Excel2007/RelsRibbon.php | 12 +- .../Writer/Excel2007/RelsVBA.php | 12 +- .../Writer/Excel2007/StringTable.php | 56 +- src/PhpSpreadsheet/Writer/Excel2007/Style.php | 190 +++--- src/PhpSpreadsheet/Writer/Excel2007/Theme.php | 20 +- .../Writer/Excel2007/Workbook.php | 132 ++-- .../Writer/Excel2007/Worksheet.php | 300 ++++----- .../Writer/Excel2007/WriterPart.php | 22 +- src/PhpSpreadsheet/Writer/Excel5.php | 106 ++-- .../Writer/Excel5/BIFFwriter.php | 4 +- src/PhpSpreadsheet/Writer/Excel5/Escher.php | 30 +- src/PhpSpreadsheet/Writer/Excel5/Font.php | 22 +- src/PhpSpreadsheet/Writer/Excel5/Parser.php | 46 +- src/PhpSpreadsheet/Writer/Excel5/Workbook.php | 100 +-- .../Writer/Excel5/Worksheet.php | 488 +++++++-------- src/PhpSpreadsheet/Writer/Excel5/Xf.php | 118 ++-- src/PhpSpreadsheet/Writer/Exception.php | 4 +- src/PhpSpreadsheet/Writer/HTML.php | 234 +++---- src/PhpSpreadsheet/Writer/IWriter.php | 4 +- src/PhpSpreadsheet/Writer/OpenDocument.php | 48 +- .../Writer/OpenDocument/Cell/Comment.php | 4 +- .../Writer/OpenDocument/Content.php | 52 +- .../Writer/OpenDocument/Meta.php | 12 +- .../Writer/OpenDocument/MetaInf.php | 12 +- .../Writer/OpenDocument/Mimetype.php | 8 +- .../Writer/OpenDocument/Settings.php | 12 +- .../Writer/OpenDocument/Styles.php | 12 +- .../Writer/OpenDocument/Thumbnails.php | 8 +- .../Writer/OpenDocument/WriterPart.php | 4 +- src/PhpSpreadsheet/Writer/PDF.php | 12 +- src/PhpSpreadsheet/Writer/PDF/Core.php | 162 ++--- src/PhpSpreadsheet/Writer/PDF/DomPDF.php | 22 +- src/PhpSpreadsheet/Writer/PDF/MPDF.php | 22 +- src/PhpSpreadsheet/Writer/PDF/TcPDF.php | 22 +- .../Calculation/DateTimeTest.php | 8 +- .../Calculation/EngineeringTest.php | 10 +- .../Calculation/FinancialTest.php | 6 +- .../Calculation/FunctionsTest.php | 4 +- .../Calculation/LogicalTest.php | 6 +- .../Calculation/LookupRefTest.php | 6 +- .../Calculation/MathTrigTest.php | 8 +- .../Calculation/TextDataTest.php | 8 +- tests/PhpSpreadsheetTests/CalculationTest.php | 6 +- .../Cell/AdvancedValueBinderTest.php | 16 +- .../PhpSpreadsheetTests/Cell/DataTypeTest.php | 4 +- .../Cell/DefaultValueBinderTest.php | 10 +- .../Cell/HyperlinkTest.php | 6 +- tests/PhpSpreadsheetTests/CellTest.php | 6 +- .../Chart/DataSeriesValuesTest.php | 6 +- .../PhpSpreadsheetTests/Chart/LayoutTest.php | 4 +- .../PhpSpreadsheetTests/Chart/LegendTest.php | 4 +- tests/PhpSpreadsheetTests/Custom/Complex.php | 4 +- .../Custom/ComplexAssert.php | 2 +- .../Reader/XEEValidatorTest.php | 6 +- .../ReferenceHelperTest.php | 4 +- tests/PhpSpreadsheetTests/SampleTest.php | 6 +- tests/PhpSpreadsheetTests/SettingsTest.php | 8 +- .../Shared/CodePageTest.php | 6 +- tests/PhpSpreadsheetTests/Shared/DateTest.php | 4 +- tests/PhpSpreadsheetTests/Shared/FileTest.php | 4 +- tests/PhpSpreadsheetTests/Shared/FontTest.php | 4 +- .../Shared/PasswordHasherTest.php | 4 +- .../PhpSpreadsheetTests/Shared/StringTest.php | 4 +- .../Shared/TimeZoneTest.php | 4 +- tests/PhpSpreadsheetTests/Style/ColorTest.php | 4 +- .../Style/NumberFormatDateTest.php | 6 +- .../Style/NumberFormatTest.php | 6 +- .../Worksheet/AutoFilter/Column/RuleTest.php | 4 +- .../Worksheet/AutoFilter/ColumnTest.php | 8 +- .../Worksheet/AutoFilterTest.php | 34 +- .../Worksheet/CellCollectionTest.php | 6 +- .../Worksheet/ColumnCellIteratorTest.php | 12 +- .../Worksheet/ColumnIteratorTest.php | 12 +- .../Worksheet/RowCellIteratorTest.php | 12 +- .../Worksheet/RowIteratorTest.php | 12 +- .../Worksheet/WorksheetColumnTest.php | 8 +- .../Worksheet/WorksheetRowTest.php | 8 +- 337 files changed, 4129 insertions(+), 4140 deletions(-) diff --git a/composer.json b/composer.json index f5ec8def..2a0ddb27 100644 --- a/composer.json +++ b/composer.json @@ -45,12 +45,12 @@ }, "autoload": { "psr-4": { - "PhpSpreadsheet\\": "src/PhpSpreadsheet" + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" } }, "autoload-dev": { "psr-4": { - "PhpSpreadsheetTests\\": "tests/PhpSpreadsheetTests" + "PhpOffice\\PhpSpreadsheetTests\\": "tests/PhpSpreadsheetTests" } } } diff --git a/samples/01_Simple.php b/samples/01_Simple.php index 10377d70..d21de72e 100644 --- a/samples/01_Simple.php +++ b/samples/01_Simple.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); diff --git a/samples/01_Simple_PCLZip.php b/samples/01_Simple_PCLZip.php index 915a1413..f6796b39 100644 --- a/samples/01_Simple_PCLZip.php +++ b/samples/01_Simple_PCLZip.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -44,7 +44,7 @@ $spreadsheet->setActiveSheetIndex(0); $helper->log('Write to Excel2007 format'); // Use PCLZip rather than ZipArchive to create the Excel2007 OfficeOpenXML file -PhpSpreadsheet\Settings::setZipClass(PhpSpreadsheet\Settings::PCLZIP); +\PhpOffice\PhpSpreadsheet\Settings::setZipClass(\PhpOffice\PhpSpreadsheet\Settings::PCLZIP); // Save $helper->write($spreadsheet, __FILE__, ['Excel2007' => 'xlsx']); diff --git a/samples/01_Simple_download_ods.php b/samples/01_Simple_download_ods.php index 705e69e4..ebbd28da 100644 --- a/samples/01_Simple_download_ods.php +++ b/samples/01_Simple_download_ods.php @@ -2,7 +2,7 @@ require_once __DIR__ . '/../src/Bootstrap.php'; -$helper = new \PhpSpreadsheet\Helper\Sample(); +$helper = new \PhpOffice\PhpSpreadsheet\Helper\Sample(); if ($helper->isCli()) { echo 'This example should only be run from a Web Browser' . PHP_EOL; @@ -10,7 +10,7 @@ if ($helper->isCli()) { } // Create new Spreadsheet object -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $spreadsheet->getProperties()->setCreator('Maarten Balliauw') @@ -52,6 +52,6 @@ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modifie header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'OpenDocument'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'OpenDocument'); $writer->save('php://output'); exit; diff --git a/samples/01_Simple_download_pdf.php b/samples/01_Simple_download_pdf.php index ee9b522d..1a9bc6d0 100644 --- a/samples/01_Simple_download_pdf.php +++ b/samples/01_Simple_download_pdf.php @@ -2,7 +2,7 @@ require_once __DIR__ . '/../src/Bootstrap.php'; -$helper = new \PhpSpreadsheet\Helper\Sample(); +$helper = new \PhpOffice\PhpSpreadsheet\Helper\Sample(); if ($helper->isCli()) { echo 'This example should only be run from a Web Browser' . PHP_EOL; @@ -11,16 +11,16 @@ if ($helper->isCli()) { // Change these values to select the Rendering library that you wish to use // and its directory location on your server -//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; -$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; -//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; //$rendererLibrary = 'tcPDF5.9'; $rendererLibrary = 'mPDF5.4'; //$rendererLibrary = 'domPDF0.6.0beta3'; $rendererLibraryPath = __DIR__ . '/../../../libraries/PDF/' . $rendererLibrary; // Create new Spreadsheet object -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $spreadsheet->getProperties()->setCreator('Maarten Balliauw') @@ -50,7 +50,7 @@ $spreadsheet->getActiveSheet()->setShowGridLines(false); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $spreadsheet->setActiveSheetIndex(0); -if (!PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { +if (!\PhpOffice\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); return; @@ -61,6 +61,6 @@ header('Content-Type: application/pdf'); header('Content-Disposition: attachment;filename="01simple.pdf"'); header('Cache-Control: max-age=0'); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'PDF'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'PDF'); $writer->save('php://output'); exit; diff --git a/samples/01_Simple_download_xls.php b/samples/01_Simple_download_xls.php index 94807e38..3b9c41d2 100644 --- a/samples/01_Simple_download_xls.php +++ b/samples/01_Simple_download_xls.php @@ -2,7 +2,7 @@ require_once __DIR__ . '/../src/Bootstrap.php'; -$helper = new \PhpSpreadsheet\Helper\Sample(); +$helper = new \PhpOffice\PhpSpreadsheet\Helper\Sample(); if ($helper->isCli()) { echo 'This example should only be run from a Web Browser' . PHP_EOL; @@ -10,7 +10,7 @@ if ($helper->isCli()) { } // Create new Spreadsheet object -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $spreadsheet->getProperties()->setCreator('Maarten Balliauw') @@ -52,6 +52,6 @@ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modifie header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); $writer->save('php://output'); exit; diff --git a/samples/01_Simple_download_xlsx.php b/samples/01_Simple_download_xlsx.php index 2afbfe22..185ec096 100644 --- a/samples/01_Simple_download_xlsx.php +++ b/samples/01_Simple_download_xlsx.php @@ -2,14 +2,14 @@ require_once __DIR__ . '/../src/Bootstrap.php'; -$helper = new \PhpSpreadsheet\Helper\Sample(); +$helper = new \PhpOffice\PhpSpreadsheet\Helper\Sample(); if ($helper->isCli()) { echo 'This example should only be run from a Web Browser' . PHP_EOL; return; } // Create new Spreadsheet object -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $spreadsheet->getProperties()->setCreator('Maarten Balliauw') @@ -51,6 +51,6 @@ header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modifie header('Cache-Control: cache, must-revalidate'); // HTTP/1.1 header('Pragma: public'); // HTTP/1.0 -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->save('php://output'); exit; diff --git a/samples/02_Types.php b/samples/02_Types.php index 4e3c3fbf..5fef248d 100644 --- a/samples/02_Types.php +++ b/samples/02_Types.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -70,41 +70,41 @@ $dateTimeNow = time(); $spreadsheet->getActiveSheet() ->setCellValue('A9', 'Date/Time') ->setCellValue('B9', 'Date') - ->setCellValue('C9', \PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); + ->setCellValue('C9', \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); $spreadsheet->getActiveSheet() ->getStyle('C9') ->getNumberFormat() - ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); + ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); $spreadsheet->getActiveSheet() ->setCellValue('A10', 'Date/Time') ->setCellValue('B10', 'Time') - ->setCellValue('C10', \PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); + ->setCellValue('C10', \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); $spreadsheet->getActiveSheet() ->getStyle('C10') ->getNumberFormat() - ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4); + ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4); $spreadsheet->getActiveSheet() ->setCellValue('A11', 'Date/Time') ->setCellValue('B11', 'Date and Time') - ->setCellValue('C11', \PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); + ->setCellValue('C11', \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($dateTimeNow)); $spreadsheet->getActiveSheet() ->getStyle('C11') ->getNumberFormat() - ->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME); + ->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME); $spreadsheet->getActiveSheet() ->setCellValue('A12', 'NULL') ->setCellValue('C12', null); -$richText = new \PhpSpreadsheet\RichText(); +$richText = new \PhpOffice\PhpSpreadsheet\RichText(); $richText->createText('你好 '); $payable = $richText->createTextRun('你 好 吗?'); $payable->getFont()->setBold(true); $payable->getFont()->setItalic(true); -$payable->getFont()->setColor(new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_DARKGREEN)); +$payable->getFont()->setColor(new \PhpOffice\PhpSpreadsheet\Style\Color(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_DARKGREEN)); $richText->createText(', unless specified otherwise on the invoice.'); @@ -112,11 +112,11 @@ $spreadsheet->getActiveSheet() ->setCellValue('A13', 'Rich Text') ->setCellValue('C13', $richText); -$richText2 = new \PhpSpreadsheet\RichText(); +$richText2 = new \PhpOffice\PhpSpreadsheet\RichText(); $richText2->createText("black text\n"); $red = $richText2->createTextRun('red text'); -$red->getFont()->setColor(new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_RED)); +$red->getFont()->setColor(new \PhpOffice\PhpSpreadsheet\Style\Color(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED)); $spreadsheet->getActiveSheet() ->getCell('C14') diff --git a/samples/03_Formulas.php b/samples/03_Formulas.php index dfe313f3..3f0e9c8d 100644 --- a/samples/03_Formulas.php +++ b/samples/03_Formulas.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); diff --git a/samples/04_Printing.php b/samples/04_Printing.php index 1f4b0425..b6cd9f9c 100644 --- a/samples/04_Printing.php +++ b/samples/04_Printing.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -34,22 +34,22 @@ $spreadsheet->getActiveSheet() // Add a drawing to the header $helper->log('Add a drawing to the header'); -$drawing = new \PhpSpreadsheet\Worksheet\HeaderFooterDrawing(); +$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing(); $drawing->setName('PhpSpreadsheet logo'); $drawing->setPath(__DIR__ . '/images/PhpSpreadsheet_logo.gif'); $drawing->setHeight(36); $spreadsheet->getActiveSheet() ->getHeaderFooter() - ->addImage($drawing, \PhpSpreadsheet\Worksheet\HeaderFooter::IMAGE_HEADER_LEFT); + ->addImage($drawing, \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooter::IMAGE_HEADER_LEFT); // Set page orientation and size $helper->log('Set page orientation and size'); $spreadsheet->getActiveSheet() ->getPageSetup() - ->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); + ->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); $spreadsheet->getActiveSheet() ->getPageSetup() - ->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); + ->setPaperSize(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); // Rename worksheet $helper->log('Rename worksheet'); diff --git a/samples/06_Largescale_with_cellcaching.php b/samples/06_Largescale_with_cellcaching.php index 6b25378c..30e8b9bd 100644 --- a/samples/06_Largescale_with_cellcaching.php +++ b/samples/06_Largescale_with_cellcaching.php @@ -2,8 +2,8 @@ require __DIR__ . '/Header.php'; -$cacheMethod = \PhpSpreadsheet\CachedObjectStorageFactory::CACHE_IN_MEMORY_GZIP; -if (\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { +$cacheMethod = \PhpOffice\PhpSpreadsheet\CachedObjectStorageFactory::CACHE_IN_MEMORY_GZIP; +if (\PhpOffice\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { $helper->log('Enable Cell Caching using ' . $cacheMethod . ' method'); } else { $helper->log('ERROR: Unable to set Cell Caching using ' . $cacheMethod . ' method, reverting to memory'); diff --git a/samples/06_Largescale_with_cellcaching_sqlite.php b/samples/06_Largescale_with_cellcaching_sqlite.php index 16083016..c80505cf 100644 --- a/samples/06_Largescale_with_cellcaching_sqlite.php +++ b/samples/06_Largescale_with_cellcaching_sqlite.php @@ -2,8 +2,8 @@ require __DIR__ . '/Header.php'; -$cacheMethod = \PhpSpreadsheet\CachedObjectStorageFactory::CACHE_TO_SQLITE; -if (\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { +$cacheMethod = \PhpOffice\PhpSpreadsheet\CachedObjectStorageFactory::CACHE_TO_SQLITE; +if (\PhpOffice\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { $helper->log('Enable Cell Caching using ' . $cacheMethod . ' method'); } else { $helper->log('ERROR: Unable to set Cell Caching using ' . $cacheMethod . ' method, reverting to memory'); diff --git a/samples/06_Largescale_with_cellcaching_sqlite3.php b/samples/06_Largescale_with_cellcaching_sqlite3.php index 7ea31645..3d781004 100644 --- a/samples/06_Largescale_with_cellcaching_sqlite3.php +++ b/samples/06_Largescale_with_cellcaching_sqlite3.php @@ -2,8 +2,8 @@ require __DIR__ . '/Header.php'; -$cacheMethod = \PhpSpreadsheet\CachedObjectStorageFactory::CACHE_TO_SQLITE3; -if (\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { +$cacheMethod = \PhpOffice\PhpSpreadsheet\CachedObjectStorageFactory::CACHE_TO_SQLITE3; +if (\PhpOffice\PhpSpreadsheet\Settings::setCacheStorageMethod($cacheMethod)) { $helper->log('Enable Cell Caching using ' . $cacheMethod . ' method'); } else { $helper->log('ERROR: Unable to set Cell Caching using ' . $cacheMethod . ' method, reverting to memory'); diff --git a/samples/07_Reader.php b/samples/07_Reader.php index 587ccfd2..1faa2d6c 100644 --- a/samples/07_Reader.php +++ b/samples/07_Reader.php @@ -5,11 +5,11 @@ require __DIR__ . '/Header.php'; // Create temporary file that will be read $sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; $filename = $helper->getTemporaryFilename(); -$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); $writer->save($filename); $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('Excel2007', $filename, $callStartTime); // Save diff --git a/samples/07_Reader_PCLZip.php b/samples/07_Reader_PCLZip.php index 5a57c947..7fc40ecb 100644 --- a/samples/07_Reader_PCLZip.php +++ b/samples/07_Reader_PCLZip.php @@ -5,14 +5,14 @@ require __DIR__ . '/Header.php'; // Create temporary file that will be read $sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; $filename = $helper->getTemporaryFilename(); -$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); $writer->save($filename); // Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file -\PhpSpreadsheet\Settings::setZipClass(\PhpSpreadsheet\Settings::PCLZIP); +\PhpSpreadsheet\Settings::setZipClass(\PhpOffice\PhpSpreadsheet\Settings::PCLZIP); $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('Excel2007', $filename, $callStartTime); $callEndTime = microtime(true); diff --git a/samples/08_Conditional_formatting.php b/samples/08_Conditional_formatting.php index eced9c29..86019305 100644 --- a/samples/08_Conditional_formatting.php +++ b/samples/08_Conditional_formatting.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -47,30 +47,30 @@ $spreadsheet->getActiveSheet()->getColumnDimension('B')->setWidth(12); // Add conditional formatting $helper->log('Add conditional formatting'); -$conditional1 = new \PhpSpreadsheet\Style\Conditional(); -$conditional1->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_BETWEEN) +$conditional1 = new \PhpOffice\PhpSpreadsheet\Style\Conditional(); +$conditional1->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_BETWEEN) ->addCondition('200') ->addCondition('400'); -$conditional1->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_YELLOW); +$conditional1->getStyle()->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_YELLOW); $conditional1->getStyle()->getFont()->setBold(true); -$conditional1->getStyle()->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); +$conditional1->getStyle()->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); -$conditional2 = new \PhpSpreadsheet\Style\Conditional(); -$conditional2->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN) +$conditional2 = new \PhpOffice\PhpSpreadsheet\Style\Conditional(); +$conditional2->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN) ->addCondition('0'); -$conditional2->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_RED); +$conditional2->getStyle()->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED); $conditional2->getStyle()->getFont()->setItalic(true); -$conditional2->getStyle()->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); +$conditional2->getStyle()->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); -$conditional3 = new \PhpSpreadsheet\Style\Conditional(); -$conditional3->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) +$conditional3 = new \PhpOffice\PhpSpreadsheet\Style\Conditional(); +$conditional3->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) ->addCondition('0'); -$conditional3->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_GREEN); +$conditional3->getStyle()->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_GREEN); $conditional3->getStyle()->getFont()->setItalic(true); -$conditional3->getStyle()->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); +$conditional3->getStyle()->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); $conditionalStyles = $spreadsheet->getActiveSheet()->getStyle('B2')->getConditionalStyles(); array_push($conditionalStyles, $conditional1); @@ -98,8 +98,8 @@ $spreadsheet->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $spread // Set page orientation and size $helper->log('Set page orientation and size'); -$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); -$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); +$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); // Rename worksheet $helper->log('Rename worksheet'); diff --git a/samples/08_Conditional_formatting_2.php b/samples/08_Conditional_formatting_2.php index 958792e5..87bd2851 100644 --- a/samples/08_Conditional_formatting_2.php +++ b/samples/08_Conditional_formatting_2.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -32,22 +32,22 @@ $spreadsheet->getActiveSheet() $spreadsheet->getActiveSheet()->getStyle('A1:A8') ->getNumberFormat() ->setFormatCode( - \PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00 + \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00 ); // Add conditional formatting $helper->log('Add conditional formatting'); -$conditional1 = new \PhpSpreadsheet\Style\Conditional(); -$conditional1->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN) +$conditional1 = new \PhpOffice\PhpSpreadsheet\Style\Conditional(); +$conditional1->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN) ->addCondition('0'); -$conditional1->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_RED); +$conditional1->getStyle()->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_RED); -$conditional3 = new \PhpSpreadsheet\Style\Conditional(); -$conditional3->setConditionType(\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) - ->setOperatorType(\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) +$conditional3 = new \PhpOffice\PhpSpreadsheet\Style\Conditional(); +$conditional3->setConditionType(\PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) + ->setOperatorType(\PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL) ->addCondition('1'); -$conditional3->getStyle()->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_GREEN); +$conditional3->getStyle()->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_GREEN); $conditionalStyles = $spreadsheet->getActiveSheet()->getStyle('A1')->getConditionalStyles(); array_push($conditionalStyles, $conditional1); diff --git a/samples/09_Pagebreaks.php b/samples/09_Pagebreaks.php index 5fa385af..9b91d2f0 100644 --- a/samples/09_Pagebreaks.php +++ b/samples/09_Pagebreaks.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -36,7 +36,7 @@ for ($i = 2; $i <= 50; ++$i) { // Add page breaks every 10 rows if ($i % 10 == 0) { // Add a page break - $spreadsheet->getActiveSheet()->setBreak('A' . $i, \PhpSpreadsheet\Worksheet::BREAK_ROW); + $spreadsheet->getActiveSheet()->setBreak('A' . $i, \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_ROW); } } diff --git a/samples/10_Autofilter.php b/samples/10_Autofilter.php index 9ef59f72..45955a8c 100644 --- a/samples/10_Autofilter.php +++ b/samples/10_Autofilter.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); diff --git a/samples/10_Autofilter_selection_1.php b/samples/10_Autofilter_selection_1.php index 746b7847..6f74f483 100644 --- a/samples/10_Autofilter_selection_1.php +++ b/samples/10_Autofilter_selection_1.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -48,7 +48,7 @@ foreach ($years as $year) { foreach ($countries as $country) { $endDays = date('t', mktime(0, 0, 0, $period, 1, $year)); for ($i = 1; $i <= $endDays; ++$i) { - $eDate = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + $eDate = \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel( $year, $period, $i @@ -86,8 +86,8 @@ $spreadsheet->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); $spreadsheet->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(true); $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); -$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); -$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); +$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(14); $spreadsheet->getActiveSheet()->freezePane('A2'); @@ -104,45 +104,45 @@ $helper->log('Set active filters'); // Filter the Country column on a filter value of countries beginning with the letter U (or Japan) // We use * as a wildcard, so specify as U* and using a wildcard requires customFilter $autoFilter->getColumn('C') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 'u*' ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); $autoFilter->getColumn('C') ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 'japan' ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); // Filter the Date column on a filter value of the first day of every period of the current year // We us a dateGroup ruletype for this, although it is still a standard filter foreach ($periods as $period) { $endDate = date('t', mktime(0, 0, 0, $period, 1, $currentYear)); $autoFilter->getColumn('D') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, [ 'year' => $currentYear, 'month' => $period, 'day' => $endDate, ] ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); } // Display only sales values that are blank // Standard filter, operator equals, and value of NULL $autoFilter->getColumn('E') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, '' ); diff --git a/samples/10_Autofilter_selection_2.php b/samples/10_Autofilter_selection_2.php index 9b0400de..1802d0ea 100644 --- a/samples/10_Autofilter_selection_2.php +++ b/samples/10_Autofilter_selection_2.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -48,7 +48,7 @@ foreach ($years as $year) { foreach ($countries as $country) { $endDays = date('t', mktime(0, 0, 0, $period, 1, $year)); for ($i = 1; $i <= $endDays; ++$i) { - $eDate = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + $eDate = \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel( $year, $period, $i @@ -86,8 +86,8 @@ $spreadsheet->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); $spreadsheet->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(true); $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); -$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); -$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); +$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(14); $spreadsheet->getActiveSheet()->freezePane('A2'); @@ -104,39 +104,39 @@ $helper->log('Set active filters'); // Filter the Country column on a filter value of Germany // As it's just a simple value filter, we can use FILTERTYPE_FILTER $autoFilter->getColumn('C') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 'Germany' ); // Filter the Date column on a filter value of the year to date $autoFilter->getColumn('D') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, null, - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); // Display only sales values that are between 400 and 600 $autoFilter->getColumn('E') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, 400 ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); $autoFilter->getColumn('E') - ->setJoin(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND) + ->setJoin(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHANOREQUAL, 600 ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); // Save $helper->write($spreadsheet, __FILE__); diff --git a/samples/10_Autofilter_selection_display.php b/samples/10_Autofilter_selection_display.php index 22d88461..0f431e66 100644 --- a/samples/10_Autofilter_selection_display.php +++ b/samples/10_Autofilter_selection_display.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -48,7 +48,7 @@ foreach ($years as $year) { foreach ($countries as $country) { $endDays = date('t', mktime(0, 0, 0, $period, 1, $year)); for ($i = 1; $i <= $endDays; ++$i) { - $eDate = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + $eDate = \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel( $year, $period, $i @@ -86,8 +86,8 @@ $spreadsheet->getActiveSheet()->getStyle('A1:F1')->getFont()->setBold(true); $spreadsheet->getActiveSheet()->getStyle('A1:F1')->getAlignment()->setWrapText(true); $spreadsheet->getActiveSheet()->getColumnDimension('C')->setWidth(12.5); $spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(10.5); -$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); -$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); +$spreadsheet->getActiveSheet()->getStyle('D2:D' . $row)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2); +$spreadsheet->getActiveSheet()->getStyle('E2:F' . $row)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); $spreadsheet->getActiveSheet()->getColumnDimension('F')->setWidth(14); $spreadsheet->getActiveSheet()->freezePane('A2'); @@ -104,45 +104,45 @@ $helper->log('Set active filters'); // Filter the Country column on a filter value of countries beginning with the letter U (or Japan) // We use * as a wildcard, so specify as U* and using a wildcard requires customFilter $autoFilter->getColumn('C') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 'u*' ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); $autoFilter->getColumn('C') ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, 'japan' ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); // Filter the Date column on a filter value of the first day of every period of the current year // We us a dateGroup ruletype for this, although it is still a standard filter foreach ($periods as $period) { $endDate = date('t', mktime(0, 0, 0, $period, 1, $currentYear)); $autoFilter->getColumn('D') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, [ 'year' => $currentYear, 'month' => $period, 'day' => $endDate, ] ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); } // Display only sales values that are blank // Standard filter, operator equals, and value of NULL $autoFilter->getColumn('E') - ->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) + ->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) ->createRule() ->setRule( - \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, + \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL, '' ); diff --git a/samples/11_Documentsecurity.php b/samples/11_Documentsecurity.php index 1479620c..2224808a 100644 --- a/samples/11_Documentsecurity.php +++ b/samples/11_Documentsecurity.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); diff --git a/samples/12_CellProtection.php b/samples/12_CellProtection.php index c3eec91a..4ef97b01 100644 --- a/samples/12_CellProtection.php +++ b/samples/12_CellProtection.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -37,7 +37,7 @@ $spreadsheet->getActiveSheet()->getProtection()->setSheet(true); $spreadsheet->getActiveSheet() ->getStyle('A2:B2') ->getProtection()->setLocked( - \PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED + \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED ); // Save diff --git a/samples/13_Calculation.php b/samples/13_Calculation.php index cea7ae77..d87f5104 100644 --- a/samples/13_Calculation.php +++ b/samples/13_Calculation.php @@ -6,12 +6,12 @@ require __DIR__ . '/Header.php'; // List functions $helper->log('List implemented functions'); -$calc = \PhpSpreadsheet\Calculation::getInstance(); +$calc = \PhpOffice\PhpSpreadsheet\Calculation::getInstance(); print_r($calc->listFunctionNames()); // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Add some data, we will use some formulas here $helper->log('Add some data and formulas'); diff --git a/samples/13_CalculationCyclicFormulae.php b/samples/13_CalculationCyclicFormulae.php index 8b8719e8..ea1be404 100644 --- a/samples/13_CalculationCyclicFormulae.php +++ b/samples/13_CalculationCyclicFormulae.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Add some data, we will use some formulas here $helper->log('Add some data and formulas'); @@ -13,7 +13,7 @@ $spreadsheet->getActiveSheet()->setCellValue('A1', '=B1') ->setCellValue('B1', '=A1+1') ->setCellValue('B2', '=A2'); -\PhpSpreadsheet\Calculation::getInstance($spreadsheet)->cyclicFormulaCount = 100; +\PhpOffice\PhpSpreadsheet\Calculation::getInstance($spreadsheet)->cyclicFormulaCount = 100; // Calculated data $helper->log('Calculated data'); diff --git a/samples/14_Excel5.php b/samples/14_Excel5.php index 61dfea71..8b0aec15 100644 --- a/samples/14_Excel5.php +++ b/samples/14_Excel5.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; $spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; $filename = $helper->getFilename(__FILE__, 'xls'); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/15_Datavalidation.php b/samples/15_Datavalidation.php index 5ceb1fc4..bd7299d6 100644 --- a/samples/15_Datavalidation.php +++ b/samples/15_Datavalidation.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -35,8 +35,8 @@ $spreadsheet->getActiveSheet()->setCellValue('A1', 'Cell B3 and B5 contain data // Set data validation $helper->log('Set data validation'); $validation = $spreadsheet->getActiveSheet()->getCell('B3')->getDataValidation(); -$validation->setType(\PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE); -$validation->setErrorStyle(\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP); +$validation->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE); +$validation->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP); $validation->setAllowBlank(true); $validation->setShowInputMessage(true); $validation->setShowErrorMessage(true); @@ -48,8 +48,8 @@ $validation->setFormula1(10); $validation->setFormula2(20); $validation = $spreadsheet->getActiveSheet()->getCell('B5')->getDataValidation(); -$validation->setType(\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST); -$validation->setErrorStyle(\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION); +$validation->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST); +$validation->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION); $validation->setAllowBlank(false); $validation->setShowInputMessage(true); $validation->setShowErrorMessage(true); @@ -61,8 +61,8 @@ $validation->setPrompt('Please pick a value from the drop-down list.'); $validation->setFormula1('"Item A,Item B,Item C"'); // Make sure to put the list items between " and " if your list is simply a comma-separated list of values !!! $validation = $spreadsheet->getActiveSheet()->getCell('B7')->getDataValidation(); -$validation->setType(\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST); -$validation->setErrorStyle(\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION); +$validation->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST); +$validation->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION); $validation->setAllowBlank(false); $validation->setShowInputMessage(true); $validation->setShowErrorMessage(true); diff --git a/samples/16_Csv.php b/samples/16_Csv.php index ed0fd7b3..1c8eec96 100644 --- a/samples/16_Csv.php +++ b/samples/16_Csv.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; $spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; $helper->log('Write to CSV format'); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'CSV')->setDelimiter(',') +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'CSV')->setDelimiter(',') ->setEnclosure('"') ->setSheetIndex(0); @@ -15,7 +15,7 @@ $helper->logWrite($writer, $filename, $callStartTime); $helper->log('Read from CSV format'); -$reader = \PhpSpreadsheet\IOFactory::createReader('CSV')->setDelimiter(',') +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('CSV')->setDelimiter(',') ->setEnclosure('"') ->setSheetIndex(0); @@ -28,7 +28,7 @@ $helper->write($spreadsheetFromCSV, __FILE__, ['Excel2007' => 'xlsx']); // Write CSV $filenameCSV = $helper->getFilename(__FILE__, 'csv'); -$writerCSV = \PhpSpreadsheet\IOFactory::createWriter($spreadsheetFromCSV, 'CSV'); +$writerCSV = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheetFromCSV, 'CSV'); $writerCSV->setExcelCompatibility(true); $callStartTime = microtime(true); diff --git a/samples/17_Html.php b/samples/17_Html.php index c7d33a00..eb3b748b 100644 --- a/samples/17_Html.php +++ b/samples/17_Html.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; $spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; $filename = $helper->getFilename(__FILE__, 'html'); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'HTML'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'HTML'); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/18_Extendedcalculation.php b/samples/18_Extendedcalculation.php index 7f51a14f..a12c5c60 100644 --- a/samples/18_Extendedcalculation.php +++ b/samples/18_Extendedcalculation.php @@ -1,16 +1,16 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; // List functions $helper->log('List implemented functions'); -$calc = \PhpSpreadsheet\Calculation::getInstance(); +$calc = \PhpOffice\PhpSpreadsheet\Calculation::getInstance(); print_r($calc->listFunctionNames()); // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Add some data, we will use some formulas here $helper->log('Add some data'); diff --git a/samples/19_Namedrange.php b/samples/19_Namedrange.php index add02535..ea39a335 100644 --- a/samples/19_Namedrange.php +++ b/samples/19_Namedrange.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -28,8 +28,8 @@ $spreadsheet->getActiveSheet()->setCellValue('A1', 'Firstname:') // Define named ranges $helper->log('Define named ranges'); -$spreadsheet->addNamedRange(new \PhpSpreadsheet\NamedRange('PersonName', $spreadsheet->getActiveSheet(), 'B1')); -$spreadsheet->addNamedRange(new \PhpSpreadsheet\NamedRange('PersonLN', $spreadsheet->getActiveSheet(), 'B2')); +$spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange('PersonName', $spreadsheet->getActiveSheet(), 'B1')); +$spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange('PersonLN', $spreadsheet->getActiveSheet(), 'B2')); // Rename named ranges $helper->log('Rename named ranges'); diff --git a/samples/20_Read_Excel2003XML.php b/samples/20_Read_Excel2003XML.php index 88b5f3f7..37169359 100644 --- a/samples/20_Read_Excel2003XML.php +++ b/samples/20_Read_Excel2003XML.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; $filename = __DIR__ . '/templates/Excel2003XMLTest.xml'; $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('Excel2003XML', $filename, $callStartTime); // Save diff --git a/samples/20_Read_Excel5.php b/samples/20_Read_Excel5.php index 0247e428..6592def3 100644 --- a/samples/20_Read_Excel5.php +++ b/samples/20_Read_Excel5.php @@ -6,14 +6,14 @@ $spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; // Write temporary file $filename = $helper->getTemporaryFilename('xls'); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); $callStartTime = microtime(true); $writer->save($filename); $helper->logWrite($writer, $filename, $callStartTime); // Read Excel5 file $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('Excel5', $filename, $callStartTime); // Save diff --git a/samples/20_Read_Gnumeric.php b/samples/20_Read_Gnumeric.php index 76606b07..d390dc14 100644 --- a/samples/20_Read_Gnumeric.php +++ b/samples/20_Read_Gnumeric.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; $filename = __DIR__ . '/templates/GnumericTest.gnumeric'; $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('Gnumeric', $filename, $callStartTime); // Save diff --git a/samples/20_Read_OOCalc.php b/samples/20_Read_OOCalc.php index 77f744bd..9dedb1ca 100644 --- a/samples/20_Read_OOCalc.php +++ b/samples/20_Read_OOCalc.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; $filename = __DIR__ . '/templates/OOCalcTest.ods'; $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('OOCalc', $filename, $callStartTime); // Save diff --git a/samples/20_Read_OOCalc_with_PCLZip.php b/samples/20_Read_OOCalc_with_PCLZip.php index ce64d2b2..9c42e872 100644 --- a/samples/20_Read_OOCalc_with_PCLZip.php +++ b/samples/20_Read_OOCalc_with_PCLZip.php @@ -3,11 +3,11 @@ require __DIR__ . '/Header.php'; // Use PCLZip rather than ZipArchive to read the Excel2007 OfficeOpenXML file -PhpSpreadsheet\Settings::setZipClass(PhpSpreadsheet\Settings::PCLZIP); +\PhpOffice\PhpSpreadsheet\Settings::setZipClass(\PhpOffice\PhpSpreadsheet\Settings::PCLZIP); $filename = __DIR__ . '/templates/OOCalcTest.ods'; $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('OOCalc', $filename, $callStartTime); // Save diff --git a/samples/20_Read_Sylk.php b/samples/20_Read_Sylk.php index c87285ce..0ffa618f 100644 --- a/samples/20_Read_Sylk.php +++ b/samples/20_Read_Sylk.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; $filename = __DIR__ . '/templates/SylkTest.slk'; $callStartTime = microtime(true); -$spreadsheet = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); $helper->logRead('SYLK', $filename, $callStartTime); // Save diff --git a/samples/21_Pdf.php b/samples/21_Pdf.php index 0a54383b..6fad9f33 100644 --- a/samples/21_Pdf.php +++ b/samples/21_Pdf.php @@ -5,9 +5,9 @@ $spreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; // Change these values to select the Rendering library that you wish to use // and its directory location on your server -//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; -//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; -$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; //$rendererLibrary = 'tcPDF5.9'; //$rendererLibrary = 'mPDF5.4'; $rendererLibrary = 'domPDF0.6.0beta3'; @@ -17,11 +17,11 @@ $helper->log('Hide grid lines'); $spreadsheet->getActiveSheet()->setShowGridLines(false); $helper->log('Set orientation to landscape'); -$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); $helper->log("Write to PDF format using {$rendererName}"); -if (!\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { +if (!\PhpOffice\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); } diff --git a/samples/22_Heavily_formatted.php b/samples/22_Heavily_formatted.php index 74e75fd3..541f3149 100644 --- a/samples/22_Heavily_formatted.php +++ b/samples/22_Heavily_formatted.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -22,19 +22,19 @@ $spreadsheet->setActiveSheetIndex(0); $spreadsheet->getActiveSheet()->getStyle('A1:T100')->applyFromArray( ['fill' => [ - 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'type' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'color' => ['argb' => 'FFCCFFCC'], ], 'borders' => [ - 'bottom' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_THIN], - 'right' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_MEDIUM], + 'bottom' => ['style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN], + 'right' => ['style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM], ], ] ); $spreadsheet->getActiveSheet()->getStyle('C5:R95')->applyFromArray( ['fill' => [ - 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'type' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'color' => ['argb' => 'FFFFFF00'], ], ] diff --git a/samples/23_Sharedstyles.php b/samples/23_Sharedstyles.php index e65bb027..48ffb1ad 100644 --- a/samples/23_Sharedstyles.php +++ b/samples/23_Sharedstyles.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -20,29 +20,29 @@ $spreadsheet->getProperties()->setCreator('Maarten Balliauw') $helper->log('Add some data'); $spreadsheet->setActiveSheetIndex(0); -$sharedStyle1 = new \PhpSpreadsheet\Style(); -$sharedStyle2 = new \PhpSpreadsheet\Style(); +$sharedStyle1 = new \PhpOffice\PhpSpreadsheet\Style(); +$sharedStyle2 = new \PhpOffice\PhpSpreadsheet\Style(); $sharedStyle1->applyFromArray( ['fill' => [ - 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'type' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'color' => ['argb' => 'FFCCFFCC'], ], 'borders' => [ - 'bottom' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_THIN], - 'right' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_MEDIUM], + 'bottom' => ['style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN], + 'right' => ['style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM], ], ] ); $sharedStyle2->applyFromArray( ['fill' => [ - 'type' => \PhpSpreadsheet\Style\Fill::FILL_SOLID, + 'type' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID, 'color' => ['argb' => 'FFFFFF00'], ], 'borders' => [ - 'bottom' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_THIN], - 'right' => ['style' => \PhpSpreadsheet\Style\Border::BORDER_MEDIUM], + 'bottom' => ['style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN], + 'right' => ['style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM], ], ] ); diff --git a/samples/24_Readfilter.php b/samples/24_Readfilter.php index d6cdb5f2..50c68809 100644 --- a/samples/24_Readfilter.php +++ b/samples/24_Readfilter.php @@ -1,18 +1,18 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; require __DIR__ . '/Header.php'; // Write temporary file $largeSpreadsheet = require __DIR__ . '/templates/largeSpreadsheet.php'; -$writer = new \PhpSpreadsheet\Writer\Excel2007($largeSpreadsheet); +$writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel2007($largeSpreadsheet); $filename = $helper->getTemporaryFilename(); $callStartTime = microtime(true); $writer->save($filename); $helper->logWrite($writer, $filename, $callStartTime); -class MyReadFilter implements \PhpSpreadsheet\Reader\IReadFilter +class MyReadFilter implements \PhpOffice\PhpSpreadsheet\Reader\IReadFilter { public function readCell($column, $row, $worksheetName = '') { @@ -26,7 +26,7 @@ class MyReadFilter implements \PhpSpreadsheet\Reader\IReadFilter } $helper->log('Load from Excel2007 file'); -$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Excel2007'); $reader->setReadFilter(new MyReadFilter()); $callStartTime = microtime(true); $spreadsheet = $reader->load($filename); diff --git a/samples/25_In_memory_image.php b/samples/25_In_memory_image.php index 1708c89d..877f2f1b 100644 --- a/samples/25_In_memory_image.php +++ b/samples/25_In_memory_image.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -24,12 +24,12 @@ imagestring($gdImage, 1, 5, 5, 'Created with PhpSpreadsheet', $textColor); // Add a drawing to the worksheet $helper->log('Add a drawing to the worksheet'); -$drawing = new \PhpSpreadsheet\Worksheet\MemoryDrawing(); +$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing(); $drawing->setName('Sample image'); $drawing->setDescription('Sample image'); $drawing->setImageResource($gdImage); -$drawing->setRenderingFunction(\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG); -$drawing->setMimeType(\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_DEFAULT); +$drawing->setRenderingFunction(\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG); +$drawing->setMimeType(\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_DEFAULT); $drawing->setHeight(36); $drawing->setWorksheet($spreadsheet->getActiveSheet()); diff --git a/samples/26_Utf8.php b/samples/26_Utf8.php index 06c604bd..5039efe7 100644 --- a/samples/26_Utf8.php +++ b/samples/26_Utf8.php @@ -4,9 +4,9 @@ require __DIR__ . '/Header.php'; // Change these values to select the PDF Rendering library that you wish to use // and its directory location on your server -//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; -//$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; -$rendererName = \PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; //$rendererLibrary = 'tcPDF5.9'; //$rendererLibrary = 'mPDF5.4'; $rendererLibrary = 'domPDF0.6.0beta3'; @@ -14,7 +14,7 @@ $rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; // Read from Excel2007 (.xlsx) template $helper->log('Load Excel2007 template file'); -$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Excel2007'); $spreadsheet = $reader->load(__DIR__ . '/templates/26template.xlsx'); /* at this point, we could do some manipulations with the template, but we skip this step */ @@ -23,7 +23,7 @@ $helper->write($spreadsheet, __FILE__, ['Excel2007' => 'xlsx', 'Excel5' => 'xls' // Export to PDF (.pdf) $helper->log('Write to PDF format'); try { - if (!\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { + if (!\PhpOffice\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); } else { $helper->write($spreadsheet, __FILE__, ['PDF' => 'pdf']); @@ -39,7 +39,7 @@ $worksheet->removeRow(1, 2); // Export to CSV (.csv) $helper->log('Write to CSV format'); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'CSV'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'CSV'); $filename = $helper->getFilename(__FILE__, 'csv'); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/27_Images_excel5.php b/samples/27_Images_excel5.php index d12aa65b..11e32311 100644 --- a/samples/27_Images_excel5.php +++ b/samples/27_Images_excel5.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Read from Excel5 (.xls) template $helper->log('Load Excel2007 template file'); -$reader = \PhpSpreadsheet\IOFactory::createReader('Excel5'); +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Excel5'); $spreadsheet = $reader->load(__DIR__ . '/templates/27template.xls'); // Save diff --git a/samples/28_Iterator.php b/samples/28_Iterator.php index 1d2bdb8b..0128ea9b 100644 --- a/samples/28_Iterator.php +++ b/samples/28_Iterator.php @@ -4,13 +4,13 @@ require __DIR__ . '/Header.php'; $sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; $filename = $helper->getTemporaryFilename(); -$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); $callStartTime = microtime(true); $writer->save($filename); $helper->logWrite($writer, $filename, $callStartTime); $callStartTime = microtime(true); -$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Excel2007'); $spreadsheet = $reader->load($filename); $helper->logRead('Excel2007', $filename, $callStartTime); $helper->log('Iterate worksheets'); diff --git a/samples/29_Advanced_value_binder.php b/samples/29_Advanced_value_binder.php index 0cca608e..82657347 100644 --- a/samples/29_Advanced_value_binder.php +++ b/samples/29_Advanced_value_binder.php @@ -1,6 +1,6 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; // Set timezone @@ -9,11 +9,11 @@ date_default_timezone_set('UTC'); // Set value binder $helper->log('Set value binder'); -\PhpSpreadsheet\Cell::setValueBinder(new \PhpSpreadsheet\Cell\AdvancedValueBinder()); +\PhpOffice\PhpSpreadsheet\Cell::setValueBinder(new \PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder()); // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); diff --git a/samples/30_Template.php b/samples/30_Template.php index 11f93e87..cb708c75 100644 --- a/samples/30_Template.php +++ b/samples/30_Template.php @@ -3,7 +3,7 @@ require __DIR__ . '/Header.php'; $helper->log('Load from Excel5 template'); -$reader = \PhpSpreadsheet\IOFactory::createReader('Excel5'); +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Excel5'); $spreadsheet = $reader->load(__DIR__ . '/templates/30template.xls'); $helper->log('Add new data to the template'); @@ -21,7 +21,7 @@ $data = [['title' => 'Excel for dummies', ], ]; -$spreadsheet->getActiveSheet()->setCellValue('D1', \PhpSpreadsheet\Shared\Date::PHPToExcel(time())); +$spreadsheet->getActiveSheet()->setCellValue('D1', \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(time())); $baseRow = 5; foreach ($data as $r => $dataRow) { diff --git a/samples/31_Document_properties_write.php b/samples/31_Document_properties_write.php index c1b5daf3..20bfac27 100644 --- a/samples/31_Document_properties_write.php +++ b/samples/31_Document_properties_write.php @@ -5,7 +5,7 @@ require __DIR__ . '/Header.php'; $inputFileType = 'Excel2007'; $inputFileName = __DIR__ . '/templates/31docproperties.xlsx'; -$spreadsheetReader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); +$spreadsheetReader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); $callStartTime = microtime(true); $spreadsheet = $spreadsheetReader->load($inputFileName); $helper->logRead($inputFileType, $inputFileName, $callStartTime); @@ -18,7 +18,7 @@ $spreadsheet->getProperties()->setTitle('Office 2007 XLSX Test Document') // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $callStartTime = microtime(true); $writer->save($filename); $helper->logWrite($writer, $filename, $callStartTime); @@ -28,7 +28,7 @@ $helper->logEndingNotes(); // Reread File $helper->log('Reread Excel2007 file'); -$spreadsheetRead = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheetRead = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); // Set properties $helper->log('Get properties'); @@ -53,9 +53,9 @@ $customProperties = $spreadsheet->getProperties()->getCustomProperties(); foreach ($customProperties as $customProperty) { $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty); $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customProperty); - if ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE) { + if ($propertyType == \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE) { $formattedValue = date('d-M-Y H:i:s', $propertyValue); - } elseif ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN) { + } elseif ($propertyType == \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN) { $formattedValue = $propertyValue ? 'TRUE' : 'FALSE'; } else { $formattedValue = $propertyValue; diff --git a/samples/31_Document_properties_write_xls.php b/samples/31_Document_properties_write_xls.php index 25e750dd..dfdbef3b 100644 --- a/samples/31_Document_properties_write_xls.php +++ b/samples/31_Document_properties_write_xls.php @@ -5,7 +5,7 @@ require __DIR__ . '/Header.php'; $inputFileType = 'Excel5'; $inputFileName = __DIR__ . '/templates/31docproperties.xls'; -$spreadsheetReader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); +$spreadsheetReader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); $callStartTime = microtime(true); $spreadsheet = $spreadsheetReader->load($inputFileName); $helper->logRead($inputFileType, $inputFileName, $callStartTime); @@ -18,7 +18,7 @@ $spreadsheet->getProperties()->setTitle('Office 95 XLS Test Document') // Save Excel 95 file $filename = $helper->getFilename(__FILE__, 'xls'); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel5'); $callStartTime = microtime(true); $writer->save($filename); $helper->logWrite($writer, $filename, $callStartTime); @@ -28,7 +28,7 @@ $helper->logEndingNotes(); // Reread File $helper->log('Reread Excel5 file'); -$spreadsheetRead = \PhpSpreadsheet\IOFactory::load($filename); +$spreadsheetRead = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename); // Set properties $helper->log('Get properties'); @@ -53,9 +53,9 @@ $customProperties = $spreadsheet->getProperties()->getCustomProperties(); foreach ($customProperties as $customProperty) { $propertyValue = $spreadsheet->getProperties()->getCustomPropertyValue($customProperty); $propertyType = $spreadsheet->getProperties()->getCustomPropertyType($customProperty); - if ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE) { + if ($propertyType == \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE) { $formattedValue = date('d-M-Y H:i:s', $propertyValue); - } elseif ($propertyType == \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN) { + } elseif ($propertyType == \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN) { $formattedValue = $propertyValue ? 'TRUE' : 'FALSE'; } else { $formattedValue = $propertyValue; diff --git a/samples/32_Chart_read_write.php b/samples/32_Chart_read_write.php index d98edbee..cbd11d61 100644 --- a/samples/32_Chart_read_write.php +++ b/samples/32_Chart_read_write.php @@ -20,7 +20,7 @@ foreach ($inputFileNames as $inputFileName) { $helper->log('File ' . $inputFileNameShort . ' does not exist'); continue; } - $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); $reader->setIncludeCharts(true); $callStartTime = microtime(true); $spreadsheet = $reader->load($inputFileName); @@ -69,7 +69,7 @@ foreach ($inputFileNames as $inputFileName) { } $outputFileName = $helper->getFilename($inputFileName); - $writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); + $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($outputFileName); diff --git a/samples/32_Chart_read_write_HTML.php b/samples/32_Chart_read_write_HTML.php index c34caf5b..859cd38f 100644 --- a/samples/32_Chart_read_write_HTML.php +++ b/samples/32_Chart_read_write_HTML.php @@ -4,11 +4,11 @@ require __DIR__ . '/Header.php'; // Change these values to select the Rendering library that you wish to use // and its directory location on your server -$rendererName = PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; +$rendererName = \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; $rendererLibrary = 'jpgraph3.5.0b1/src/'; $rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; -if (!PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { +if (!\PhpOffice\PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); return; @@ -35,7 +35,7 @@ foreach ($inputFileNames as $inputFileName) { $helper->log("Load Test from $inputFileType file " . $inputFileNameShort); - $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($inputFileName); @@ -83,7 +83,7 @@ foreach ($inputFileNames as $inputFileName) { // Save $filename = $helper->getFilename($inputFileName); - $writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'HTML'); + $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'HTML'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/32_Chart_read_write_PDF.php b/samples/32_Chart_read_write_PDF.php index 44496383..613f032c 100644 --- a/samples/32_Chart_read_write_PDF.php +++ b/samples/32_Chart_read_write_PDF.php @@ -4,15 +4,15 @@ require __DIR__ . '/Header.php'; // Change these values to select the Rendering library that you wish to use // for PDF files, and its directory location on your server -//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; -$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; -//$rendererName = PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF; +$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF; +//$rendererName = \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF; //$rendererLibrary = 'tcPDF5.9'; $rendererLibrary = 'mPDF5.4'; //$rendererLibrary = 'domPDF0.6.0beta3'; $rendererLibraryPath = '/php/libraries/PDF/' . $rendererLibrary; -if (!PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { +if (!\PhpOffice\PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath)) { $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); return; @@ -20,11 +20,11 @@ if (!PhpSpreadsheet\Settings::setPdfRenderer($rendererName, $rendererLibraryPath // Change these values to select the Rendering library that you wish to use // for Chart images, and its directory location on your server -$rendererName = PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; +$rendererName = \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; $rendererLibrary = 'jpgraph3.5.0b1/src/'; $rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; -if (!PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { +if (!\PhpOffice\PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); return; @@ -51,7 +51,7 @@ foreach ($inputFileNames as $inputFileName) { $helper->log("Load Test from $inputFileType file " . $inputFileNameShort); - $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($inputFileName); @@ -99,7 +99,7 @@ foreach ($inputFileNames as $inputFileName) { // Save $filename = $helper->getFilename($inputFileName); - $writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'PDF'); + $writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'PDF'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_area.php b/samples/33_Chart_create_area.php index 614b8627..b19cf496 100644 --- a/samples/33_Chart_create_area.php +++ b/samples/33_Chart_create_area.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -23,9 +23,9 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -35,7 +35,7 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -45,15 +45,15 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel $xAxisTickValues, // plotCategory @@ -61,15 +61,15 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( ); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test %age-Stacked Area Chart'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test %age-Stacked Area Chart'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -89,7 +89,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_bar.php b/samples/33_Chart_create_bar.php index 7842dc32..76c10aa2 100644 --- a/samples/33_Chart_create_bar.php +++ b/samples/33_Chart_create_bar.php @@ -1,13 +1,13 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; $spreadsheet = require __DIR__ . '/templates/chartSpreadsheet.php'; // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_bar_stacked.php b/samples/33_Chart_create_bar_stacked.php index b1b62eb5..6f84a483 100644 --- a/samples/33_Chart_create_bar_stacked.php +++ b/samples/33_Chart_create_bar_stacked.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -23,9 +23,9 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -35,7 +35,7 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -45,15 +45,15 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_STACKED, // plotGrouping +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_STACKED, // plotGrouping range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel $xAxisTickValues, // plotCategory @@ -61,18 +61,18 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( ); // Set additional dataseries parameters // Make it a horizontal bar rather than a vertical column graph -$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_BAR); +$series->setPlotDirection(\PhpOffice\PhpSpreadsheet\Chart\DataSeries::DIRECTION_BAR); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Chart'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Chart'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -92,7 +92,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_column.php b/samples/33_Chart_create_column.php index 6bec5bcb..57b00db0 100644 --- a/samples/33_Chart_create_column.php +++ b/samples/33_Chart_create_column.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -23,9 +23,9 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -35,7 +35,7 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -45,15 +45,15 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel $xAxisTickValues, // plotCategory @@ -61,18 +61,18 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( ); // Set additional dataseries parameters // Make it a vertical column rather than a horizontal bar graph -$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); +$series->setPlotDirection(\PhpOffice\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Column Chart'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Column Chart'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -92,7 +92,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_column_2.php b/samples/33_Chart_create_column_2.php index 2d64cc7e..5df2fb30 100644 --- a/samples/33_Chart_create_column_2.php +++ b/samples/33_Chart_create_column_2.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -31,9 +31,9 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 'Budget' - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 'Forecast' - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$E$1', null, 1), // 'Actual' + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 'Budget' + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 'Forecast' + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$E$1', null, 1), // 'Actual' ]; // Set the X-Axis Labels // Datatype @@ -43,7 +43,7 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$B$13', null, 12), // Q1 to Q4 for 2010 to 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$B$13', null, 12), // Q1 to Q4 for 2010 to 2012 ]; // Set the Data values for each data series we want to plot // Datatype @@ -53,15 +53,15 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$13', null, 12), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel $xAxisTickValues, // plotCategory @@ -69,19 +69,19 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( ); // Set additional dataseries parameters // Make it a vertical column rather than a horizontal bar graph -$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); +$series->setPlotDirection(\PhpOffice\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_BOTTOM, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_BOTTOM, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Grouped Column Chart'); -$xAxisLabel = new \PhpSpreadsheet\Chart\Title('Financial Period'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Grouped Column Chart'); +$xAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Financial Period'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -101,7 +101,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_composite.php b/samples/33_Chart_create_composite.php index f55b3cc9..af801d8d 100644 --- a/samples/33_Chart_create_composite.php +++ b/samples/33_Chart_create_composite.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -31,13 +31,13 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // Temperature + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // Temperature ]; $dataSeriesLabels2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // Rainfall + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // Rainfall ]; $dataSeriesLabels3 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // Humidity + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // Humidity ]; // Set the X-Axis Labels @@ -48,7 +48,7 @@ $dataSeriesLabels3 = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec ]; // Set the Data values for each data series we want to plot @@ -59,13 +59,13 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$13', null, 12), ]; // Build the dataseries -$series1 = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping +$series1 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping range(0, count($dataSeriesValues1) - 1), // plotOrder $dataSeriesLabels1, // plotLabel $xAxisTickValues, // plotCategory @@ -73,7 +73,7 @@ $series1 = new \PhpSpreadsheet\Chart\DataSeries( ); // Set additional dataseries parameters // Make it a vertical column rather than a horizontal bar graph -$series1->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); +$series1->setPlotDirection(\PhpOffice\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); // Set the Data values for each data series we want to plot // Datatype @@ -83,13 +83,13 @@ $series1->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); // Data values // Data Marker $dataSeriesValues2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), ]; // Build the dataseries -$series2 = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_LINECHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping +$series2 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_LINECHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping range(0, count($dataSeriesValues2) - 1), // plotOrder $dataSeriesLabels2, // plotLabel null, // plotCategory @@ -104,13 +104,13 @@ $series2 = new \PhpSpreadsheet\Chart\DataSeries( // Data values // Data Marker $dataSeriesValues3 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), ]; // Build the dataseries -$series3 = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping +$series3 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping range(0, count($dataSeriesValues2) - 1), // plotOrder $dataSeriesLabels3, // plotLabel null, // plotCategory @@ -118,14 +118,14 @@ $series3 = new \PhpSpreadsheet\Chart\DataSeries( ); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series1, $series2, $series3]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series1, $series2, $series3]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Average Weather Chart for Crete'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Average Weather Chart for Crete'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -145,7 +145,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_line.php b/samples/33_Chart_create_line.php index 78254a6f..5b2fc06c 100644 --- a/samples/33_Chart_create_line.php +++ b/samples/33_Chart_create_line.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -23,9 +23,9 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -35,7 +35,7 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -45,15 +45,15 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_LINECHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_STACKED, // plotGrouping +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_LINECHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_STACKED, // plotGrouping range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel $xAxisTickValues, // plotCategory @@ -61,15 +61,15 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( ); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Stacked Line Chart'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Stacked Line Chart'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -89,7 +89,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_multiple_charts.php b/samples/33_Chart_create_multiple_charts.php index 9edd5b79..fd6ed83c 100644 --- a/samples/33_Chart_create_multiple_charts.php +++ b/samples/33_Chart_create_multiple_charts.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -23,9 +23,9 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -35,7 +35,7 @@ $dataSeriesLabels1 = [ // Data values // Data Marker $xAxisTickValues1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -45,15 +45,15 @@ $xAxisTickValues1 = [ // Data values // Data Marker $dataSeriesValues1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series1 = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping +$series1 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_AREACHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_PERCENT_STACKED, // plotGrouping range(0, count($dataSeriesValues1) - 1), // plotOrder $dataSeriesLabels1, // plotLabel $xAxisTickValues1, // plotCategory @@ -61,15 +61,15 @@ $series1 = new \PhpSpreadsheet\Chart\DataSeries( ); // Set the series in the plot area -$plotArea1 = new \PhpSpreadsheet\Chart\PlotArea(null, [$series1]); +$plotArea1 = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series1]); // Set the chart legend -$legend1 = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); +$legend1 = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); -$title1 = new \PhpSpreadsheet\Chart\Title('Test %age-Stacked Area Chart'); -$yAxisLabel1 = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title1 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test %age-Stacked Area Chart'); +$yAxisLabel1 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart1 = new \PhpSpreadsheet\Chart( +$chart1 = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title1, // title $legend1, // legend @@ -95,9 +95,9 @@ $worksheet->addChart($chart1); // Data values // Data Marker $dataSeriesLabels2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -107,7 +107,7 @@ $dataSeriesLabels2 = [ // Data values // Data Marker $xAxisTickValues2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -117,15 +117,15 @@ $xAxisTickValues2 = [ // Data values // Data Marker $dataSeriesValues2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series2 = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping +$series2 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_STANDARD, // plotGrouping range(0, count($dataSeriesValues2) - 1), // plotOrder $dataSeriesLabels2, // plotLabel $xAxisTickValues2, // plotCategory @@ -133,18 +133,18 @@ $series2 = new \PhpSpreadsheet\Chart\DataSeries( ); // Set additional dataseries parameters // Make it a vertical column rather than a horizontal bar graph -$series2->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); +$series2->setPlotDirection(\PhpOffice\PhpSpreadsheet\Chart\DataSeries::DIRECTION_COL); // Set the series in the plot area -$plotArea2 = new \PhpSpreadsheet\Chart\PlotArea(null, [$series2]); +$plotArea2 = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series2]); // Set the chart legend -$legend2 = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend2 = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title2 = new \PhpSpreadsheet\Chart\Title('Test Column Chart'); -$yAxisLabel2 = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title2 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Column Chart'); +$yAxisLabel2 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart2 = new \PhpSpreadsheet\Chart( +$chart2 = new \PhpOffice\PhpSpreadsheet\Chart( 'chart2', // name $title2, // title $legend2, // legend @@ -164,7 +164,7 @@ $worksheet->addChart($chart2); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_pie.php b/samples/33_Chart_create_pie.php index f792adf3..6ee0aa1e 100644 --- a/samples/33_Chart_create_pie.php +++ b/samples/33_Chart_create_pie.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -23,7 +23,7 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 ]; // Set the X-Axis Labels // Datatype @@ -33,7 +33,7 @@ $dataSeriesLabels1 = [ // Data values // Data Marker $xAxisTickValues1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -43,12 +43,12 @@ $xAxisTickValues1 = [ // Data values // Data Marker $dataSeriesValues1 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), ]; // Build the dataseries -$series1 = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_PIECHART, // plotType +$series1 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_PIECHART, // plotType null, // plotGrouping (Pie charts don't have any grouping) range(0, count($dataSeriesValues1) - 1), // plotOrder $dataSeriesLabels1, // plotLabel @@ -57,19 +57,19 @@ $series1 = new \PhpSpreadsheet\Chart\DataSeries( ); // Set up a layout object for the Pie chart -$layout1 = new \PhpSpreadsheet\Chart\Layout(); +$layout1 = new \PhpOffice\PhpSpreadsheet\Chart\Layout(); $layout1->setShowVal(true); $layout1->setShowPercent(true); // Set the series in the plot area -$plotArea1 = new \PhpSpreadsheet\Chart\PlotArea($layout1, [$series1]); +$plotArea1 = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea($layout1, [$series1]); // Set the chart legend -$legend1 = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend1 = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title1 = new \PhpSpreadsheet\Chart\Title('Test Pie Chart'); +$title1 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Pie Chart'); // Create the chart -$chart1 = new \PhpSpreadsheet\Chart( +$chart1 = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title1, // title $legend1, // legend @@ -95,7 +95,7 @@ $worksheet->addChart($chart1); // Data values // Data Marker $dataSeriesLabels2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 ]; // Set the X-Axis Labels // Datatype @@ -105,7 +105,7 @@ $dataSeriesLabels2 = [ // Data values // Data Marker $xAxisTickValues2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -115,12 +115,12 @@ $xAxisTickValues2 = [ // Data values // Data Marker $dataSeriesValues2 = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), ]; // Build the dataseries -$series2 = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_DONUTCHART, // plotType +$series2 = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_DONUTCHART, // plotType null, // plotGrouping (Donut charts don't have any grouping) range(0, count($dataSeriesValues2) - 1), // plotOrder $dataSeriesLabels2, // plotLabel @@ -129,17 +129,17 @@ $series2 = new \PhpSpreadsheet\Chart\DataSeries( ); // Set up a layout object for the Pie chart -$layout2 = new \PhpSpreadsheet\Chart\Layout(); +$layout2 = new \PhpOffice\PhpSpreadsheet\Chart\Layout(); $layout2->setShowVal(true); $layout2->setShowCatName(true); // Set the series in the plot area -$plotArea2 = new \PhpSpreadsheet\Chart\PlotArea($layout2, [$series2]); +$plotArea2 = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea($layout2, [$series2]); -$title2 = new \PhpSpreadsheet\Chart\Title('Test Donut Chart'); +$title2 = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Donut Chart'); // Create the chart -$chart2 = new \PhpSpreadsheet\Chart( +$chart2 = new \PhpOffice\PhpSpreadsheet\Chart( 'chart2', // name $title2, // title null, // legend @@ -159,7 +159,7 @@ $worksheet->addChart($chart2); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_radar.php b/samples/33_Chart_create_radar.php index 8ea22b51..b2d792f2 100644 --- a/samples/33_Chart_create_radar.php +++ b/samples/33_Chart_create_radar.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -31,8 +31,8 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -42,8 +42,8 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$13', null, 12), // Jan to Dec ]; // Set the Data values for each data series we want to plot // Datatype @@ -53,13 +53,13 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$13', null, 12), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$13', null, 12), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_RADARCHART, // plotType +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_RADARCHART, // plotType null, // plotGrouping (Radar charts don't have any grouping) range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel @@ -67,21 +67,21 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( $dataSeriesValues, // plotValues null, // plotDirection null, // smooth line - \PhpSpreadsheet\Chart\DataSeries::STYLE_MARKER // plotStyle + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::STYLE_MARKER // plotStyle ); // Set up a layout object for the Pie chart -$layout = new \PhpSpreadsheet\Chart\Layout(); +$layout = new \PhpOffice\PhpSpreadsheet\Chart\Layout(); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea($layout, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea($layout, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Radar Chart'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Radar Chart'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -101,7 +101,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_scatter.php b/samples/33_Chart_create_scatter.php index 1d904a07..937b0fff 100644 --- a/samples/33_Chart_create_scatter.php +++ b/samples/33_Chart_create_scatter.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -23,13 +23,13 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -39,14 +39,14 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_SCATTERCHART, // plotType +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_SCATTERCHART, // plotType null, // plotGrouping (Scatter charts don't have any grouping) range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel @@ -54,19 +54,19 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( $dataSeriesValues, // plotValues null, // plotDirection null, // smooth line - \PhpSpreadsheet\Chart\DataSeries::STYLE_LINEMARKER // plotStyle + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::STYLE_LINEMARKER // plotStyle ); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_TOPRIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Scatter Chart'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Scatter Chart'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend @@ -86,7 +86,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/33_Chart_create_stock.php b/samples/33_Chart_create_stock.php index 37478c03..e6605bf9 100644 --- a/samples/33_Chart_create_stock.php +++ b/samples/33_Chart_create_stock.php @@ -1,9 +1,9 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -18,7 +18,7 @@ $worksheet->fromArray( 'A1', true ); -$worksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00); +$worksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_NUMBER_00); // Set the Labels for each data series we want to plot // Datatype @@ -28,10 +28,10 @@ $worksheet->getStyle('B2:E6')->getNumberFormat()->setFormatCode(PhpSpreadsheet\S // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), //Max / Open - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), //Min / Close - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), //Min Threshold / Min - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$E$1', null, 1), //Max Threshold / Max + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), //Max / Open + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), //Min / Close + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), //Min Threshold / Min + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$E$1', null, 1), //Max Threshold / Max ]; // Set the X-Axis Labels // Datatype @@ -41,7 +41,7 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$6', null, 5), // Counts + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$6', null, 5), // Counts ]; // Set the Data values for each data series we want to plot // Datatype @@ -51,15 +51,15 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$6', null, 5), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$6', null, 5), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$6', null, 5), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$6', null, 5), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$6', null, 5), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$6', null, 5), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$6', null, 5), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$E$2:$E$6', null, 5), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_STOCKCHART, // plotType +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_STOCKCHART, // plotType null, // plotGrouping - if we set this to not null, then xlsx throws error range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel @@ -68,16 +68,16 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( ); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Stock Chart'); -$xAxisLabel = new \PhpSpreadsheet\Chart\Title('Counts'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Values'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Stock Chart'); +$xAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Counts'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Values'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'stock-chart', // name $title, // title $legend, // legend @@ -97,7 +97,7 @@ $worksheet->addChart($chart); // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/34_Chart_update.php b/samples/34_Chart_update.php index 40cc6d5a..1357fa0f 100644 --- a/samples/34_Chart_update.php +++ b/samples/34_Chart_update.php @@ -1,16 +1,16 @@ <?php -/** PhpSpreadsheet */ + require __DIR__ . '/Header.php'; // Create temporary file that will be read $sampleSpreadsheet = require __DIR__ . '/templates/chartSpreadsheet.php'; $filename = $helper->getTemporaryFilename(); -$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); $writer->save($filename); $helper->log('Load from Excel2007 file'); -$reader = \PhpSpreadsheet\IOFactory::createReader('Excel2007'); +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Excel2007'); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($filename); @@ -29,7 +29,7 @@ $worksheet->fromArray( // Save Excel 2007 file $filename = $helper->getFilename(__FILE__); -$writer = \PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); +$writer = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($spreadsheet, 'Excel2007'); $writer->setIncludeCharts(true); $callStartTime = microtime(true); $writer->save($filename); diff --git a/samples/35_Chart_render.php b/samples/35_Chart_render.php index 486cdd4c..cb06eff4 100644 --- a/samples/35_Chart_render.php +++ b/samples/35_Chart_render.php @@ -4,11 +4,11 @@ require __DIR__ . '/Header.php'; // Change these values to select the Rendering library that you wish to use // and its directory location on your server -$rendererName = PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; +$rendererName = \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH; $rendererLibrary = 'jpgraph3.5.0b1/src/'; $rendererLibraryPath = '/php/libraries/Charts/' . $rendererLibrary; -if (!PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { +if (!\PhpOffice\PhpSpreadsheet\Settings::setChartRenderer($rendererName, $rendererLibraryPath)) { $helper->log('NOTICE: Please set the $rendererName and $rendererLibraryPath values at the top of this script as appropriate for your directory structure'); return; @@ -35,7 +35,7 @@ foreach ($inputFileNames as $inputFileName) { $helper->log("Load Test from $inputFileType file ", $inputFileNameShort); - $reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); + $reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); $reader->setIncludeCharts(true); $spreadsheet = $reader->load($inputFileName); diff --git a/samples/37_Page_layout_view.php b/samples/37_Page_layout_view.php index bcefa6ba..42cc1beb 100644 --- a/samples/37_Page_layout_view.php +++ b/samples/37_Page_layout_view.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -23,7 +23,7 @@ $spreadsheet->setActiveSheetIndex(0) ->setCellValue('B2', 'world!'); // Set the page layout view as page layout -$spreadsheet->getActiveSheet()->getSheetView()->setView(PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT); +$spreadsheet->getActiveSheet()->getSheetView()->setView(\PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT); // Save $helper->write($spreadsheet, __FILE__); diff --git a/samples/38_Clone_worksheet.php b/samples/38_Clone_worksheet.php index 103955ca..aa555c39 100644 --- a/samples/38_Clone_worksheet.php +++ b/samples/38_Clone_worksheet.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); diff --git a/samples/39_Dropdown.php b/samples/39_Dropdown.php index 049b4ab3..d4c0306e 100644 --- a/samples/39_Dropdown.php +++ b/samples/39_Dropdown.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -39,7 +39,7 @@ foreach ($continents as $key => $filename) { $spreadsheet->getActiveSheet() ->fromArray($countries, null, $column . '1'); $spreadsheet->addNamedRange( - new PhpSpreadsheet\NamedRange( + new \PhpOffice\PhpSpreadsheet\NamedRange( $continent, $spreadsheet->getActiveSheet(), $column . '1:' . $column . $countryCount @@ -61,7 +61,7 @@ $spreadsheet->getActiveSheet() ->setVisible(false); $spreadsheet->addNamedRange( - new PhpSpreadsheet\NamedRange( + new \PhpOffice\PhpSpreadsheet\NamedRange( 'Continents', $spreadsheet->getActiveSheet(), $continentColumn . '1:' . $continentColumn . count($continents) @@ -85,8 +85,8 @@ $spreadsheet->getActiveSheet() $validation = $spreadsheet->getActiveSheet() ->getCell('B1') ->getDataValidation(); -$validation->setType(PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) - ->setErrorStyle(PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) +$validation->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) + ->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) ->setAllowBlank(false) ->setShowInputMessage(true) ->setShowErrorMessage(true) @@ -106,8 +106,8 @@ $spreadsheet->getActiveSheet() $validation = $spreadsheet->getActiveSheet() ->getCell('B3') ->getDataValidation(); -$validation->setType(PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) - ->setErrorStyle(PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) +$validation->setType(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) + ->setErrorStyle(\PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION) ->setAllowBlank(false) ->setShowInputMessage(true) ->setShowErrorMessage(true) diff --git a/samples/40_Duplicate_style.php b/samples/40_Duplicate_style.php index f2eeff2f..dca84817 100644 --- a/samples/40_Duplicate_style.php +++ b/samples/40_Duplicate_style.php @@ -3,13 +3,13 @@ require __DIR__ . '/Header.php'; $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $helper->log('Create styles array'); $styles = []; for ($i = 0; $i < 10; ++$i) { - $style = new \PhpSpreadsheet\Style(); + $style = new \PhpOffice\PhpSpreadsheet\Style(); $style->getFont()->setSize($i + 4); $styles[] = $style; } @@ -20,7 +20,7 @@ for ($col = 0; $col < 50; ++$col) { for ($row = 0; $row < 100; ++$row) { $str = ($row + $col); $style = $styles[$row % 10]; - $coord = \PhpSpreadsheet\Cell::stringFromColumnIndex($col) . ($row + 1); + $coord = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col) . ($row + 1); $worksheet->setCellValue($coord, $str); $worksheet->duplicateStyle($style, $coord); } diff --git a/samples/42_RichText.php b/samples/42_RichText.php index 3cd33863..d65bd8d9 100644 --- a/samples/42_RichText.php +++ b/samples/42_RichText.php @@ -4,7 +4,7 @@ require __DIR__ . '/Header.php'; // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -48,7 +48,7 @@ $html4 = 'H<sub>2</sub>SO<sub>4</sub> is the chemical formula for Sulphuric acid $html5 = '<strong>bold</strong>, <em>italic</em>, <strong><em>bold+italic</em></strong>'; -$wizard = new \PhpSpreadsheet\Helper\HTML(); +$wizard = new \PhpOffice\PhpSpreadsheet\Helper\HTML(); $richText = $wizard->toRichTextObject($html1); $spreadsheet->getActiveSheet() diff --git a/samples/43_Merge_workbooks.php b/samples/43_Merge_workbooks.php index d55dae74..7e76d1b8 100644 --- a/samples/43_Merge_workbooks.php +++ b/samples/43_Merge_workbooks.php @@ -5,13 +5,13 @@ require __DIR__ . '/Header.php'; $helper->log('Load MergeBook1 from Excel2007 file'); $filename1 = __DIR__ . '/templates/43mergeBook1.xlsx'; $callStartTime = microtime(true); -$spreadsheet1 = \PhpSpreadsheet\IOFactory::load($filename1); +$spreadsheet1 = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename1); $helper->logRead('Excel2007', $filename1, $callStartTime); $helper->log('Load MergeBook2 from Excel2007 file'); $filename2 = __DIR__ . '/templates/43mergeBook2.xlsx'; $callStartTime = microtime(true); -$spreadsheet2 = \PhpSpreadsheet\IOFactory::load($filename2); +$spreadsheet2 = \PhpOffice\PhpSpreadsheet\IOFactory::load($filename2); $helper->logRead('Excel2007', $filename2, $callStartTime); foreach ($spreadsheet2->getSheetNames() as $sheetName) { diff --git a/samples/44_Worksheet_info.php b/samples/44_Worksheet_info.php index 608b53b6..7265a483 100644 --- a/samples/44_Worksheet_info.php +++ b/samples/44_Worksheet_info.php @@ -5,11 +5,11 @@ require __DIR__ . '/Header.php'; // Create temporary file that will be read $sampleSpreadsheet = require __DIR__ . '/templates/sampleSpreadsheet.php'; $filename = $helper->getTemporaryFilename(); -$writer = new \PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); +$writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel2007($sampleSpreadsheet); $writer->save($filename); -$inputFileType = \PhpSpreadsheet\IOFactory::identify($filename); -$reader = \PhpSpreadsheet\IOFactory::createReader($inputFileType); +$inputFileType = \PhpOffice\PhpSpreadsheet\IOFactory::identify($filename); +$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType); $sheetList = $reader->listWorksheetNames($filename); $sheetInfo = $reader->listWorksheetInfo($filename); diff --git a/samples/Header.php b/samples/Header.php index 6e22112d..b406ba1b 100644 --- a/samples/Header.php +++ b/samples/Header.php @@ -6,7 +6,7 @@ error_reporting(E_ALL); require_once __DIR__ . '/../src/Bootstrap.php'; -$helper = new \PhpSpreadsheet\Helper\Sample(); +$helper = new \PhpOffice\PhpSpreadsheet\Helper\Sample(); if (!defined('EOL')) { define('EOL', $helper->isCli() ? PHP_EOL : '<br />'); } diff --git a/samples/templates/chartSpreadsheet.php b/samples/templates/chartSpreadsheet.php index 8b3a3564..f6fb8b00 100644 --- a/samples/templates/chartSpreadsheet.php +++ b/samples/templates/chartSpreadsheet.php @@ -1,6 +1,6 @@ <?php -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $worksheet = $spreadsheet->getActiveSheet(); $worksheet->fromArray( [ @@ -20,9 +20,9 @@ $worksheet->fromArray( // Data values // Data Marker $dataSeriesLabels = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$B$1', null, 1), // 2010 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$C$1', null, 1), // 2011 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$D$1', null, 1), // 2012 ]; // Set the X-Axis Labels // Datatype @@ -32,7 +32,7 @@ $dataSeriesLabels = [ // Data values // Data Marker $xAxisTickValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', 'Worksheet!$A$2:$A$5', null, 4), // Q1 to Q4 ]; // Set the Data values for each data series we want to plot // Datatype @@ -42,15 +42,15 @@ $xAxisTickValues = [ // Data values // Data Marker $dataSeriesValues = [ - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), - new \PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$B$2:$B$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$C$2:$C$5', null, 4), + new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', 'Worksheet!$D$2:$D$5', null, 4), ]; // Build the dataseries -$series = new \PhpSpreadsheet\Chart\DataSeries( - \PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType - \PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping +$series = new \PhpOffice\PhpSpreadsheet\Chart\DataSeries( + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::TYPE_BARCHART, // plotType + \PhpOffice\PhpSpreadsheet\Chart\DataSeries::GROUPING_CLUSTERED, // plotGrouping range(0, count($dataSeriesValues) - 1), // plotOrder $dataSeriesLabels, // plotLabel $xAxisTickValues, // plotCategory @@ -58,18 +58,18 @@ $series = new \PhpSpreadsheet\Chart\DataSeries( ); // Set additional dataseries parameters // Make it a horizontal bar rather than a vertical column graph -$series->setPlotDirection(\PhpSpreadsheet\Chart\DataSeries::DIRECTION_BAR); +$series->setPlotDirection(\PhpOffice\PhpSpreadsheet\Chart\DataSeries::DIRECTION_BAR); // Set the series in the plot area -$plotArea = new \PhpSpreadsheet\Chart\PlotArea(null, [$series]); +$plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea(null, [$series]); // Set the chart legend -$legend = new \PhpSpreadsheet\Chart\Legend(\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); +$legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend(\PhpOffice\PhpSpreadsheet\Chart\Legend::POSITION_RIGHT, null, false); -$title = new \PhpSpreadsheet\Chart\Title('Test Bar Chart'); -$yAxisLabel = new \PhpSpreadsheet\Chart\Title('Value ($k)'); +$title = new \PhpOffice\PhpSpreadsheet\Chart\Title('Test Bar Chart'); +$yAxisLabel = new \PhpOffice\PhpSpreadsheet\Chart\Title('Value ($k)'); // Create the chart -$chart = new \PhpSpreadsheet\Chart( +$chart = new \PhpOffice\PhpSpreadsheet\Chart( 'chart1', // name $title, // title $legend, // legend diff --git a/samples/templates/largeSpreadsheet.php b/samples/templates/largeSpreadsheet.php index 75ac99b8..76ecb5d0 100644 --- a/samples/templates/largeSpreadsheet.php +++ b/samples/templates/largeSpreadsheet.php @@ -2,7 +2,7 @@ // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set properties'); diff --git a/samples/templates/sampleSpreadsheet.php b/samples/templates/sampleSpreadsheet.php index 2b90af33..479d0b03 100644 --- a/samples/templates/sampleSpreadsheet.php +++ b/samples/templates/sampleSpreadsheet.php @@ -2,7 +2,7 @@ // Create new Spreadsheet object $helper->log('Create new Spreadsheet object'); -$spreadsheet = new \PhpSpreadsheet\Spreadsheet(); +$spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Set document properties $helper->log('Set document properties'); @@ -18,8 +18,8 @@ $spreadsheet->getProperties()->setCreator('Maarten Balliauw') $helper->log('Add some data'); $spreadsheet->setActiveSheetIndex(0); $spreadsheet->getActiveSheet()->setCellValue('B1', 'Invoice'); -$spreadsheet->getActiveSheet()->setCellValue('D1', \PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, date('m'), date('d'), date('Y')))); -$spreadsheet->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15); +$spreadsheet->getActiveSheet()->setCellValue('D1', \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, date('m'), date('d'), date('Y')))); +$spreadsheet->getActiveSheet()->getStyle('D1')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15); $spreadsheet->getActiveSheet()->setCellValue('E1', '#12566'); $spreadsheet->getActiveSheet()->setCellValue('A3', 'Product Id'); @@ -81,13 +81,13 @@ $spreadsheet->getActiveSheet()->getComment('E13')->getFillColor()->setRGB('EEEEE // Add rich-text string $helper->log('Add rich-text string'); -$richText = new \PhpSpreadsheet\RichText(); +$richText = new \PhpOffice\PhpSpreadsheet\RichText(); $richText->createText('This invoice is '); $payable = $richText->createTextRun('payable within thirty days after the end of the month'); $payable->getFont()->setBold(true); $payable->getFont()->setItalic(true); -$payable->getFont()->setColor(new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_DARKGREEN)); +$payable->getFont()->setColor(new \PhpOffice\PhpSpreadsheet\Style\Color(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_DARKGREEN)); $richText->createText(', unless specified otherwise on the invoice.'); @@ -105,7 +105,7 @@ $spreadsheet->getActiveSheet()->protectCells('A3:E13', 'PhpSpreadsheet'); // Set cell number formats $helper->log('Set cell number formats'); -$spreadsheet->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); +$spreadsheet->getActiveSheet()->getStyle('E4:E13')->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE); // Set column widths $helper->log('Set column widths'); @@ -118,23 +118,23 @@ $helper->log('Set fonts'); $spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setName('Candara'); $spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setSize(20); $spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setBold(true); -$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); -$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_WHITE); +$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); +$spreadsheet->getActiveSheet()->getStyle('B1')->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE); -$spreadsheet->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_WHITE); -$spreadsheet->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(\PhpSpreadsheet\Style\Color::COLOR_WHITE); +$spreadsheet->getActiveSheet()->getStyle('D1')->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE); +$spreadsheet->getActiveSheet()->getStyle('E1')->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE); $spreadsheet->getActiveSheet()->getStyle('D13')->getFont()->setBold(true); $spreadsheet->getActiveSheet()->getStyle('E13')->getFont()->setBold(true); // Set alignments $helper->log('Set alignments'); -$spreadsheet->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); -$spreadsheet->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); -$spreadsheet->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); +$spreadsheet->getActiveSheet()->getStyle('D11')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); +$spreadsheet->getActiveSheet()->getStyle('D12')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); +$spreadsheet->getActiveSheet()->getStyle('D13')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); -$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY); -$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); +$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY); +$spreadsheet->getActiveSheet()->getStyle('A18')->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); $spreadsheet->getActiveSheet()->getStyle('B5')->getAlignment()->setShrinkToFit(true); @@ -143,7 +143,7 @@ $helper->log('Set thin black border outline around column'); $styleThinBlackBorderOutline = [ 'borders' => [ 'outline' => [ - 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, 'color' => ['argb' => 'FF000000'], ], ], @@ -155,7 +155,7 @@ $helper->log('Set thick brown border outline around Total'); $styleThickBrownBorderOutline = [ 'borders' => [ 'outline' => [ - 'style' => \PhpSpreadsheet\Style\Border::BORDER_THICK, + 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK, 'color' => ['argb' => 'FF993300'], ], ], @@ -164,7 +164,7 @@ $spreadsheet->getActiveSheet()->getStyle('D13:E13')->applyFromArray($styleThickB // Set fills $helper->log('Set fills'); -$spreadsheet->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(\PhpSpreadsheet\Style\Fill::FILL_SOLID); +$spreadsheet->getActiveSheet()->getStyle('A1:E1')->getFill()->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID); $spreadsheet->getActiveSheet()->getStyle('A1:E1')->getFill()->getStartColor()->setARGB('FF808080'); // Set style for header row using alternative method @@ -175,15 +175,15 @@ $spreadsheet->getActiveSheet()->getStyle('A3:E3')->applyFromArray( 'bold' => true, ], 'alignment' => [ - 'horizontal' => \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT, + 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT, ], 'borders' => [ 'top' => [ - 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, ], ], 'fill' => [ - 'type' => \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR, + 'type' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR, 'rotation' => 90, 'startcolor' => [ 'argb' => 'FFA0A0A0', @@ -198,11 +198,11 @@ $spreadsheet->getActiveSheet()->getStyle('A3:E3')->applyFromArray( $spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray( [ 'alignment' => [ - 'horizontal' => \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, + 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, ], 'borders' => [ 'left' => [ - 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, ], ], ] @@ -211,7 +211,7 @@ $spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray( $spreadsheet->getActiveSheet()->getStyle('B3')->applyFromArray( [ 'alignment' => [ - 'horizontal' => \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, + 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, ], ] ); @@ -220,7 +220,7 @@ $spreadsheet->getActiveSheet()->getStyle('E3')->applyFromArray( [ 'borders' => [ 'right' => [ - 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, ], ], ] @@ -228,24 +228,24 @@ $spreadsheet->getActiveSheet()->getStyle('E3')->applyFromArray( // Unprotect a cell $helper->log('Unprotect a cell'); -$spreadsheet->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); +$spreadsheet->getActiveSheet()->getStyle('B1')->getProtection()->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); // Add a hyperlink to the sheet $helper->log('Add a hyperlink to an external website'); $spreadsheet->getActiveSheet()->setCellValue('E26', 'www.phpexcel.net'); $spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setUrl('http://www.phpexcel.net'); $spreadsheet->getActiveSheet()->getCell('E26')->getHyperlink()->setTooltip('Navigate to website'); -$spreadsheet->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); +$spreadsheet->getActiveSheet()->getStyle('E26')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); $helper->log('Add a hyperlink to another cell on a different worksheet within the workbook'); $spreadsheet->getActiveSheet()->setCellValue('E27', 'Terms and conditions'); $spreadsheet->getActiveSheet()->getCell('E27')->getHyperlink()->setUrl("sheet://'Terms and conditions'!A1"); $spreadsheet->getActiveSheet()->getCell('E27')->getHyperlink()->setTooltip('Review terms and conditions'); -$spreadsheet->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); +$spreadsheet->getActiveSheet()->getStyle('E27')->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); // Add a drawing to the worksheet $helper->log('Add a drawing to the worksheet'); -$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); $drawing->setName('Logo'); $drawing->setDescription('Logo'); $drawing->setPath(__DIR__ . '/../images/officelogo.jpg'); @@ -254,7 +254,7 @@ $drawing->setWorksheet($spreadsheet->getActiveSheet()); // Add a drawing to the worksheet $helper->log('Add a drawing to the worksheet'); -$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); $drawing->setName('Paid'); $drawing->setDescription('Paid'); $drawing->setPath(__DIR__ . '/../images/paid.png'); @@ -267,7 +267,7 @@ $drawing->setWorksheet($spreadsheet->getActiveSheet()); // Add a drawing to the worksheet $helper->log('Add a drawing to the worksheet'); -$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); $drawing->setName('PhpSpreadsheet logo'); $drawing->setDescription('PhpSpreadsheet logo'); $drawing->setPath(__DIR__ . '/../images/PhpSpreadsheet_logo.gif'); @@ -290,8 +290,8 @@ $spreadsheet->getActiveSheet()->getHeaderFooter()->setOddFooter('&L&B' . $spread // Set page orientation and size $helper->log('Set page orientation and size'); -$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); -$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); +$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); // Rename first worksheet $helper->log('Rename first worksheet'); @@ -330,13 +330,13 @@ $helper->log('Set fonts'); $spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setName('Candara'); $spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setSize(20); $spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setBold(true); -$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); +$spreadsheet->getActiveSheet()->getStyle('A1')->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); $spreadsheet->getActiveSheet()->getStyle('A3:A6')->getFont()->setSize(8); // Add a drawing to the worksheet $helper->log('Add a drawing to the worksheet'); -$drawing = new \PhpSpreadsheet\Worksheet\Drawing(); +$drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); $drawing->setName('Terms and conditions'); $drawing->setDescription('Terms and conditions'); $drawing->setPath(__DIR__ . '/../images/termsconditions.jpg'); @@ -345,8 +345,8 @@ $drawing->setWorksheet($spreadsheet->getActiveSheet()); // Set page orientation and size $helper->log('Set page orientation and size'); -$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); -$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); +$spreadsheet->getActiveSheet()->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); +$spreadsheet->getActiveSheet()->getPageSetup()->setPaperSize(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4); // Rename second worksheet $helper->log('Rename second worksheet'); diff --git a/src/Autoloader.php b/src/Autoloader.php index 7bca2ef9..14f7fb21 100644 --- a/src/Autoloader.php +++ b/src/Autoloader.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Autoloader for PhpSpreadsheet classes @@ -38,7 +38,7 @@ class Autoloader spl_autoload_register('__autoload'); } // Register ourselves with SPL - return spl_autoload_register([\PhpSpreadsheet\Autoloader::class, 'load'], true, true); + return spl_autoload_register([\PhpOffice\PhpSpreadsheet\Autoloader::class, 'load'], true, true); } /** @@ -48,14 +48,15 @@ class Autoloader */ public static function load($className) { - if ((class_exists($className, false)) || (strpos($className, 'PhpSpreadsheet\\') !== 0)) { + $prefix = 'PhpOffice\\PhpSpreadsheet\\'; + if ((class_exists($className, false)) || (strpos($className, $prefix) !== 0)) { // Either already loaded, or not a PhpSpreadsheet class request return false; } $classFilePath = __DIR__ . DIRECTORY_SEPARATOR . 'PhpSpreadsheet' . DIRECTORY_SEPARATOR . - str_replace(['PhpSpreadsheet\\', '\\'], ['', '/'], $className) . + str_replace([$prefix, '\\'], ['', '/'], $className) . '.php'; if ((file_exists($classFilePath) === false) || (is_readable($classFilePath) === false)) { diff --git a/src/Bootstrap.php b/src/Bootstrap.php index 53e704c3..7ce96554 100644 --- a/src/Bootstrap.php +++ b/src/Bootstrap.php @@ -26,4 +26,4 @@ */ include_once __DIR__ . '/Autoloader.php'; -\PhpSpreadsheet\Autoloader::register(); +\PhpOffice\PhpSpreadsheet\Autoloader::register(); diff --git a/src/PhpSpreadsheet/CachedObjectStorage/APC.php b/src/PhpSpreadsheet/CachedObjectStorage/APC.php index 2db3482f..22ba0917 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/APC.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/APC.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -44,7 +44,7 @@ class APC extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -57,7 +57,7 @@ class APC extends CacheBase implements ICache $this->cacheTime )) { $this->__destruct(); - throw new \PhpSpreadsheet\Exception('Failed to store cell ' . $this->currentObjectID . ' in APC'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Failed to store cell ' . $this->currentObjectID . ' in APC'); } $this->currentCellIsDirty = false; } @@ -68,11 +68,11 @@ class APC extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -87,10 +87,10 @@ class APC extends CacheBase implements ICache } /** - * Is a value set in the current \PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? + * Is a value set in the current \PhpOffice\PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? * * @param string $pCoord Coordinate address of the cell to check - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function isDataSet($pCoord) @@ -105,7 +105,7 @@ class APC extends CacheBase implements ICache if ($success === false) { // Entry no longer exists in APC, so clear it from the cache array parent::deleteCacheData($pCoord); - throw new \PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in APC cache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in APC cache'); } return true; @@ -118,8 +118,8 @@ class APC extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -134,7 +134,7 @@ class APC extends CacheBase implements ICache if ($obj === false) { // Entry no longer exists in APC, so clear it from the cache array parent::deleteCacheData($pCoord); - throw new \PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in APC cache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in APC cache'); } } else { // Return null if requested entry doesn't exist in cache @@ -169,7 +169,7 @@ class APC extends CacheBase implements ICache * Delete a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to delete - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function deleteCacheData($pCoord) { @@ -183,10 +183,10 @@ class APC extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::copyCellCollection($parent); // Get a new id for the new file name @@ -199,11 +199,11 @@ class APC extends CacheBase implements ICache if ($obj === false) { // Entry no longer exists in APC, so clear it from the cache array parent::deleteCacheData($cellID); - throw new \PhpSpreadsheet\Exception('Cell entry ' . $cellID . ' no longer exists in APC'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell entry ' . $cellID . ' no longer exists in APC'); } if (!apc_store($newCachePrefix . $cellID . '.cache', $obj, $this->cacheTime)) { $this->__destruct(); - throw new \PhpSpreadsheet\Exception('Failed to store cell ' . $cellID . ' in APC'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Failed to store cell ' . $cellID . ' in APC'); } } } @@ -232,10 +232,10 @@ class APC extends CacheBase implements ICache /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection * @param array of mixed $arguments Additional initialisation arguments */ - public function __construct(\PhpSpreadsheet\Worksheet $parent, $arguments) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent, $arguments) { $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; diff --git a/src/PhpSpreadsheet/CachedObjectStorage/CacheBase.php b/src/PhpSpreadsheet/CachedObjectStorage/CacheBase.php index 787eac29..4ed22cc2 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/CacheBase.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/CacheBase.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,14 +29,14 @@ abstract class CacheBase /** * Parent worksheet * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ protected $parent; /** * The currently active Cell * - * @var \PhpSpreadsheet\Cell + * @var \PhpOffice\PhpSpreadsheet\Cell */ protected $currentObject = null; @@ -65,12 +65,12 @@ abstract class CacheBase /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection */ - public function __construct(\PhpSpreadsheet\Worksheet $parent) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { // Set our parent worksheet. - // This is maintained within the cache controller to facilitate re-attaching it to \PhpSpreadsheet\Cell objects when + // This is maintained within the cache controller to facilitate re-attaching it to \PhpOffice\PhpSpreadsheet\Cell objects when // they are woken from a serialized state $this->parent = $parent; } @@ -78,7 +78,7 @@ abstract class CacheBase /** * Return the parent worksheet for this cell collection * - * @return \PhpSpreadsheet\Worksheet + * @return \PhpOffice\PhpSpreadsheet\Worksheet */ public function getParent() { @@ -86,7 +86,7 @@ abstract class CacheBase } /** - * Is a value set in the current \PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? + * Is a value set in the current \PhpOffice\PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? * * @param string $pCoord Coordinate address of the cell to check * @return bool @@ -124,11 +124,11 @@ abstract class CacheBase /** * Add or Update a cell in cache * - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function updateCacheData(\PhpSpreadsheet\Cell $cell) + public function updateCacheData(\PhpOffice\PhpSpreadsheet\Cell $cell) { return $this->addCacheData($cell->getCoordinate(), $cell); } @@ -137,7 +137,7 @@ abstract class CacheBase * Delete a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to delete - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function deleteCacheData($pCoord) { @@ -262,10 +262,10 @@ abstract class CacheBase if ($r != $row) { continue; } - $columnList[] = \PhpSpreadsheet\Cell::columnIndexFromString($c); + $columnList[] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($c); } - return \PhpSpreadsheet\Cell::stringFromColumnIndex(max($columnList) - 1); + return \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex(max($columnList) - 1); } /** @@ -314,9 +314,9 @@ abstract class CacheBase /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { $this->currentCellIsDirty; $this->storeData(); diff --git a/src/PhpSpreadsheet/CachedObjectStorage/DiscISAM.php b/src/PhpSpreadsheet/CachedObjectStorage/DiscISAM.php index 826e6637..e85e433b 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/DiscISAM.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/DiscISAM.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -51,7 +51,7 @@ class DiscISAM extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -73,11 +73,11 @@ class DiscISAM extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -94,8 +94,8 @@ class DiscISAM extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -138,9 +138,9 @@ class DiscISAM extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::copyCellCollection($parent); // Get a new id for the new file name @@ -174,14 +174,14 @@ class DiscISAM extends CacheBase implements ICache /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection * @param array of mixed $arguments Additional initialisation arguments */ - public function __construct(\PhpSpreadsheet\Worksheet $parent, $arguments) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent, $arguments) { $this->cacheDirectory = ((isset($arguments['dir'])) && ($arguments['dir'] !== null)) ? $arguments['dir'] - : \PhpSpreadsheet\Shared\File::sysGetTempDir(); + : \PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir(); parent::__construct($parent); if (is_null($this->fileHandle)) { diff --git a/src/PhpSpreadsheet/CachedObjectStorage/ICache.php b/src/PhpSpreadsheet/CachedObjectStorage/ICache.php index da9c4495..7c34c3f9 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/ICache.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/ICache.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -30,27 +30,27 @@ interface ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell); + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell); /** * Add or Update a cell in cache * - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function updateCacheData(\PhpSpreadsheet\Cell $cell); + public function updateCacheData(\PhpOffice\PhpSpreadsheet\Cell $cell); /** * Fetch a cell from cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to retrieve - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord); @@ -58,12 +58,12 @@ interface ICache * Delete a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to delete - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function deleteCacheData($pCoord); /** - * Is a value set in the current \PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? + * Is a value set in the current \PhpOffice\PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? * * @param string $pCoord Coordinate address of the cell to check * @return bool @@ -87,9 +87,9 @@ interface ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent); + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent); /** * Identify whether the caching method is currently available diff --git a/src/PhpSpreadsheet/CachedObjectStorage/Igbinary.php b/src/PhpSpreadsheet/CachedObjectStorage/Igbinary.php index 1bb8944c..db52a695 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/Igbinary.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/Igbinary.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -30,7 +30,7 @@ class Igbinary extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -47,11 +47,11 @@ class Igbinary extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -68,8 +68,8 @@ class Igbinary extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { diff --git a/src/PhpSpreadsheet/CachedObjectStorage/Memcache.php b/src/PhpSpreadsheet/CachedObjectStorage/Memcache.php index 959c2801..06cc1790 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/Memcache.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/Memcache.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -51,7 +51,7 @@ class Memcache extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -62,7 +62,7 @@ class Memcache extends CacheBase implements ICache if (!$this->memcache->replace($this->cachePrefix . $this->currentObjectID . '.cache', $obj, null, $this->cacheTime)) { if (!$this->memcache->add($this->cachePrefix . $this->currentObjectID . '.cache', $obj, null, $this->cacheTime)) { $this->__destruct(); - throw new \PhpSpreadsheet\Exception("Failed to store cell {$this->currentObjectID} in MemCache"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Failed to store cell {$this->currentObjectID} in MemCache"); } } $this->currentCellIsDirty = false; @@ -74,11 +74,11 @@ class Memcache extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -93,10 +93,10 @@ class Memcache extends CacheBase implements ICache } /** - * Is a value set in the current \PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? + * Is a value set in the current \PhpOffice\PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? * * @param string $pCoord Coordinate address of the cell to check - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function isDataSet($pCoord) @@ -111,7 +111,7 @@ class Memcache extends CacheBase implements ICache if ($success === false) { // Entry no longer exists in Memcache, so clear it from the cache array parent::deleteCacheData($pCoord); - throw new \PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in MemCache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in MemCache'); } return true; @@ -124,8 +124,8 @@ class Memcache extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -140,7 +140,7 @@ class Memcache extends CacheBase implements ICache if ($obj === false) { // Entry no longer exists in Memcache, so clear it from the cache array parent::deleteCacheData($pCoord); - throw new \PhpSpreadsheet\Exception("Cell entry {$pCoord} no longer exists in MemCache"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Cell entry {$pCoord} no longer exists in MemCache"); } } else { // Return null if requested entry doesn't exist in cache @@ -175,7 +175,7 @@ class Memcache extends CacheBase implements ICache * Delete a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to delete - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function deleteCacheData($pCoord) { @@ -189,10 +189,10 @@ class Memcache extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::copyCellCollection($parent); // Get a new id for the new file name @@ -205,11 +205,11 @@ class Memcache extends CacheBase implements ICache if ($obj === false) { // Entry no longer exists in Memcache, so clear it from the cache array parent::deleteCacheData($cellID); - throw new \PhpSpreadsheet\Exception("Cell entry {$cellID} no longer exists in MemCache"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Cell entry {$cellID} no longer exists in MemCache"); } if (!$this->memcache->add($newCachePrefix . $cellID . '.cache', $obj, null, $this->cacheTime)) { $this->__destruct(); - throw new \PhpSpreadsheet\Exception("Failed to store cell {$cellID} in MemCache"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Failed to store cell {$cellID} in MemCache"); } } } @@ -238,11 +238,11 @@ class Memcache extends CacheBase implements ICache /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection * @param mixed[] $arguments Additional initialisation arguments - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function __construct(\PhpSpreadsheet\Worksheet $parent, $arguments) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent, $arguments) { $memcacheServer = (isset($arguments['memcacheServer'])) ? $arguments['memcacheServer'] : 'localhost'; $memcachePort = (isset($arguments['memcachePort'])) ? $arguments['memcachePort'] : 11211; @@ -255,7 +255,7 @@ class Memcache extends CacheBase implements ICache // Set a new Memcache object and connect to the Memcache server $this->memcache = new self(); if (!$this->memcache->addServer($memcacheServer, $memcachePort, false, 50, 5, 5, true, [$this, 'failureCallback'])) { - throw new \PhpSpreadsheet\Exception("Could not connect to MemCache server at {$memcacheServer}:{$memcachePort}"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Could not connect to MemCache server at {$memcacheServer}:{$memcachePort}"); } $this->cacheTime = $cacheTime; @@ -268,11 +268,11 @@ class Memcache extends CacheBase implements ICache * * @param string $host Memcache server * @param int $port Memcache port - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function failureCallback($host, $port) { - throw new \PhpSpreadsheet\Exception("memcache {$host}:{$port} failed"); + throw new \PhpOffice\PhpSpreadsheet\Exception("memcache {$host}:{$port} failed"); } /** diff --git a/src/PhpSpreadsheet/CachedObjectStorage/Memory.php b/src/PhpSpreadsheet/CachedObjectStorage/Memory.php index 0f3a8a7e..18a27203 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/Memory.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/Memory.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -37,11 +37,11 @@ class Memory extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { $this->cellCache[$pCoord] = $cell; @@ -55,8 +55,8 @@ class Memory extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -77,9 +77,9 @@ class Memory extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::copyCellCollection($parent); diff --git a/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php b/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php index 823c76f6..81e904b0 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/MemoryGZip.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -30,7 +30,7 @@ class MemoryGZip extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -47,11 +47,11 @@ class MemoryGZip extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -68,8 +68,8 @@ class MemoryGZip extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { diff --git a/src/PhpSpreadsheet/CachedObjectStorage/MemorySerialized.php b/src/PhpSpreadsheet/CachedObjectStorage/MemorySerialized.php index 4114bb3d..07f966e0 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/MemorySerialized.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/MemorySerialized.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -30,7 +30,7 @@ class MemorySerialized extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -47,11 +47,11 @@ class MemorySerialized extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -68,8 +68,8 @@ class MemorySerialized extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { diff --git a/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php b/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php index ea2664c9..080007eb 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/PHPTemp.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -44,7 +44,7 @@ class PHPTemp extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -66,11 +66,11 @@ class PHPTemp extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -87,8 +87,8 @@ class PHPTemp extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -131,9 +131,9 @@ class PHPTemp extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::copyCellCollection($parent); // Open a new stream for the cell cache data @@ -167,10 +167,10 @@ class PHPTemp extends CacheBase implements ICache /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection * @param mixed[] $arguments Additional initialisation arguments */ - public function __construct(\PhpSpreadsheet\Worksheet $parent, $arguments) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent, $arguments) { $this->memoryCacheSize = (isset($arguments['memoryCacheSize'])) ? $arguments['memoryCacheSize'] : 1 * 1024 * 1024; diff --git a/src/PhpSpreadsheet/CachedObjectStorage/SQLite.php b/src/PhpSpreadsheet/CachedObjectStorage/SQLite.php index 33a5d78f..1b1cac4d 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/SQLite.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/SQLite.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -44,7 +44,7 @@ class SQLite extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -52,7 +52,7 @@ class SQLite extends CacheBase implements ICache $this->currentObject->detach(); if (!$this->DBHandle->queryExec('INSERT OR REPLACE INTO kvp_' . $this->TableName . " VALUES('" . $this->currentObjectID . "','" . sqlite_escape_string(serialize($this->currentObject)) . "')")) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } $this->currentCellIsDirty = false; } @@ -63,11 +63,11 @@ class SQLite extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -84,8 +84,8 @@ class SQLite extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -97,7 +97,7 @@ class SQLite extends CacheBase implements ICache $query = 'SELECT value FROM kvp_' . $this->TableName . " WHERE id='" . $pCoord . "'"; $cellResultSet = $this->DBHandle->query($query, SQLITE_ASSOC); if ($cellResultSet === false) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } elseif ($cellResultSet->numRows() == 0) { // Return null if requested entry doesn't exist in cache return null; @@ -119,7 +119,7 @@ class SQLite extends CacheBase implements ICache * Is a value set for an indexed cell? * * @param string $pCoord Coordinate address of the cell to check - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function isDataSet($pCoord) @@ -132,7 +132,7 @@ class SQLite extends CacheBase implements ICache $query = 'SELECT id FROM kvp_' . $this->TableName . " WHERE id='" . $pCoord . "'"; $cellResultSet = $this->DBHandle->query($query, SQLITE_ASSOC); if ($cellResultSet === false) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } elseif ($cellResultSet->numRows() == 0) { // Return null if requested entry doesn't exist in cache return false; @@ -145,7 +145,7 @@ class SQLite extends CacheBase implements ICache * Delete a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to delete - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function deleteCacheData($pCoord) { @@ -157,7 +157,7 @@ class SQLite extends CacheBase implements ICache // Check if the requested entry exists in the cache $query = 'DELETE FROM kvp_' . $this->TableName . " WHERE id='" . $pCoord . "'"; if (!$this->DBHandle->queryExec($query)) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } $this->currentCellIsDirty = false; @@ -168,7 +168,7 @@ class SQLite extends CacheBase implements ICache * * @param string $fromAddress Current address of the cell to move * @param string $toAddress Destination address of the cell to move - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function moveCell($fromAddress, $toAddress) @@ -180,13 +180,13 @@ class SQLite extends CacheBase implements ICache $query = 'DELETE FROM kvp_' . $this->TableName . " WHERE id='" . $toAddress . "'"; $result = $this->DBHandle->exec($query); if ($result === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } $query = 'UPDATE kvp_' . $this->TableName . " SET id='" . $toAddress . "' WHERE id='" . $fromAddress . "'"; $result = $this->DBHandle->exec($query); if ($result === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } return true; @@ -195,7 +195,7 @@ class SQLite extends CacheBase implements ICache /** * Get a list of all cell addresses currently held in cache * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return string[] */ public function getCellList() @@ -207,7 +207,7 @@ class SQLite extends CacheBase implements ICache $query = 'SELECT id FROM kvp_' . $this->TableName; $cellIdsResult = $this->DBHandle->unbufferedQuery($query, SQLITE_ASSOC); if ($cellIdsResult === false) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } $cellKeys = []; @@ -221,10 +221,10 @@ class SQLite extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { $this->currentCellIsDirty; $this->storeData(); @@ -234,7 +234,7 @@ class SQLite extends CacheBase implements ICache if (!$this->DBHandle->queryExec('CREATE TABLE kvp_' . $tableName . ' (id VARCHAR(12) PRIMARY KEY, value BLOB) AS SELECT * FROM kvp_' . $this->TableName) ) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } // Copy the existing cell cache file @@ -260,10 +260,10 @@ class SQLite extends CacheBase implements ICache /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function __construct(\PhpSpreadsheet\Worksheet $parent) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::__construct($parent); if (is_null($this->DBHandle)) { @@ -272,10 +272,10 @@ class SQLite extends CacheBase implements ICache $this->DBHandle = new SQLiteDatabase($_DBName); if ($this->DBHandle === false) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } if (!$this->DBHandle->queryExec('CREATE TABLE kvp_' . $this->TableName . ' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) { - throw new \PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); + throw new \PhpOffice\PhpSpreadsheet\Exception(sqlite_error_string($this->DBHandle->lastError())); } } } diff --git a/src/PhpSpreadsheet/CachedObjectStorage/SQLite3.php b/src/PhpSpreadsheet/CachedObjectStorage/SQLite3.php index 6acb1f4a..989e6e5b 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/SQLite3.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/SQLite3.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -72,7 +72,7 @@ class SQLite3 extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -83,7 +83,7 @@ class SQLite3 extends CacheBase implements ICache $this->insertQuery->bindValue('data', serialize($this->currentObject), SQLITE3_BLOB); $result = $this->insertQuery->execute(); if ($result === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } $this->currentCellIsDirty = false; } @@ -94,11 +94,11 @@ class SQLite3 extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -115,9 +115,9 @@ class SQLite3 extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -129,7 +129,7 @@ class SQLite3 extends CacheBase implements ICache $this->selectQuery->bindValue('id', $pCoord, SQLITE3_TEXT); $cellResult = $this->selectQuery->execute(); if ($cellResult === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } $cellData = $cellResult->fetchArray(SQLITE3_ASSOC); if ($cellData === false) { @@ -152,7 +152,7 @@ class SQLite3 extends CacheBase implements ICache * Is a value set for an indexed cell? * * @param string $pCoord Coordinate address of the cell to check - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function isDataSet($pCoord) @@ -165,7 +165,7 @@ class SQLite3 extends CacheBase implements ICache $this->selectQuery->bindValue('id', $pCoord, SQLITE3_TEXT); $cellResult = $this->selectQuery->execute(); if ($cellResult === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } $cellData = $cellResult->fetchArray(SQLITE3_ASSOC); @@ -176,7 +176,7 @@ class SQLite3 extends CacheBase implements ICache * Delete a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to delete - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function deleteCacheData($pCoord) { @@ -189,7 +189,7 @@ class SQLite3 extends CacheBase implements ICache $this->deleteQuery->bindValue('id', $pCoord, SQLITE3_TEXT); $result = $this->deleteQuery->execute(); if ($result === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } $this->currentCellIsDirty = false; @@ -200,7 +200,7 @@ class SQLite3 extends CacheBase implements ICache * * @param string $fromAddress Current address of the cell to move * @param string $toAddress Destination address of the cell to move - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function moveCell($fromAddress, $toAddress) @@ -212,14 +212,14 @@ class SQLite3 extends CacheBase implements ICache $this->deleteQuery->bindValue('id', $toAddress, SQLITE3_TEXT); $result = $this->deleteQuery->execute(); if ($result === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } $this->updateQuery->bindValue('toid', $toAddress, SQLITE3_TEXT); $this->updateQuery->bindValue('fromid', $fromAddress, SQLITE3_TEXT); $result = $this->updateQuery->execute(); if ($result === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } return true; @@ -228,7 +228,7 @@ class SQLite3 extends CacheBase implements ICache /** * Get a list of all cell addresses currently held in cache * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return string[] */ public function getCellList() @@ -240,7 +240,7 @@ class SQLite3 extends CacheBase implements ICache $query = 'SELECT id FROM kvp_' . $this->TableName; $cellIdsResult = $this->DBHandle->query($query); if ($cellIdsResult === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } $cellKeys = []; @@ -254,10 +254,10 @@ class SQLite3 extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { $this->currentCellIsDirty; $this->storeData(); @@ -267,7 +267,7 @@ class SQLite3 extends CacheBase implements ICache if (!$this->DBHandle->exec('CREATE TABLE kvp_' . $tableName . ' (id VARCHAR(12) PRIMARY KEY, value BLOB) AS SELECT * FROM kvp_' . $this->TableName) ) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } // Copy the existing cell cache file @@ -293,10 +293,10 @@ class SQLite3 extends CacheBase implements ICache /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function __construct(\PhpSpreadsheet\Worksheet $parent) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::__construct($parent); if (is_null($this->DBHandle)) { @@ -305,10 +305,10 @@ class SQLite3 extends CacheBase implements ICache $this->DBHandle = new \SQLite3($_DBName); if ($this->DBHandle === false) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } if (!$this->DBHandle->exec('CREATE TABLE kvp_' . $this->TableName . ' (id VARCHAR(12) PRIMARY KEY, value BLOB)')) { - throw new \PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); + throw new \PhpOffice\PhpSpreadsheet\Exception($this->DBHandle->lastErrorMsg()); } } diff --git a/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php b/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php index caea7dab..a467cc63 100644 --- a/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php +++ b/src/PhpSpreadsheet/CachedObjectStorage/Wincache.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CachedObjectStorage; +namespace PhpOffice\PhpSpreadsheet\CachedObjectStorage; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -44,7 +44,7 @@ class Wincache extends CacheBase implements ICache * Store cell data in cache for the current cell object if it's "dirty", * and the 'nullify' the current cell object * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function storeData() { @@ -55,12 +55,12 @@ class Wincache extends CacheBase implements ICache if (wincache_ucache_exists($this->cachePrefix . $this->currentObjectID . '.cache')) { if (!wincache_ucache_set($this->cachePrefix . $this->currentObjectID . '.cache', $obj, $this->cacheTime)) { $this->__destruct(); - throw new \PhpSpreadsheet\Exception('Failed to store cell ' . $this->currentObjectID . ' in WinCache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Failed to store cell ' . $this->currentObjectID . ' in WinCache'); } } else { if (!wincache_ucache_add($this->cachePrefix . $this->currentObjectID . '.cache', $obj, $this->cacheTime)) { $this->__destruct(); - throw new \PhpSpreadsheet\Exception('Failed to store cell ' . $this->currentObjectID . ' in WinCache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Failed to store cell ' . $this->currentObjectID . ' in WinCache'); } } $this->currentCellIsDirty = false; @@ -73,11 +73,11 @@ class Wincache extends CacheBase implements ICache * Add or Update a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to update - * @param \PhpSpreadsheet\Cell $cell Cell to update - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to update + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell */ - public function addCacheData($pCoord, \PhpSpreadsheet\Cell $cell) + public function addCacheData($pCoord, \PhpOffice\PhpSpreadsheet\Cell $cell) { if (($pCoord !== $this->currentObjectID) && ($this->currentObjectID !== null)) { $this->storeData(); @@ -92,10 +92,10 @@ class Wincache extends CacheBase implements ICache } /** - * Is a value set in the current \PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? + * Is a value set in the current \PhpOffice\PhpSpreadsheet\CachedObjectStorage\ICache for an indexed cell? * * @param string $pCoord Coordinate address of the cell to check - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function isDataSet($pCoord) @@ -110,7 +110,7 @@ class Wincache extends CacheBase implements ICache if ($success === false) { // Entry no longer exists in Wincache, so clear it from the cache array parent::deleteCacheData($pCoord); - throw new \PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in WinCache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in WinCache'); } return true; @@ -123,8 +123,8 @@ class Wincache extends CacheBase implements ICache * Get cell at a specific coordinate * * @param string $pCoord Coordinate of the cell - * @throws \PhpSpreadsheet\Exception - * @return \PhpSpreadsheet\Cell Cell that was found, or null if not found + * @throws \PhpOffice\PhpSpreadsheet\Exception + * @return \PhpOffice\PhpSpreadsheet\Cell Cell that was found, or null if not found */ public function getCacheData($pCoord) { @@ -141,7 +141,7 @@ class Wincache extends CacheBase implements ICache if ($success === false) { // Entry no longer exists in WinCache, so clear it from the cache array parent::deleteCacheData($pCoord); - throw new \PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in WinCache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell entry ' . $pCoord . ' no longer exists in WinCache'); } } else { // Return null if requested entry doesn't exist in cache @@ -176,7 +176,7 @@ class Wincache extends CacheBase implements ICache * Delete a cell in cache identified by coordinate address * * @param string $pCoord Coordinate address of the cell to delete - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function deleteCacheData($pCoord) { @@ -190,10 +190,10 @@ class Wincache extends CacheBase implements ICache /** * Clone the cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The new worksheet that we're copying to + * @throws \PhpOffice\PhpSpreadsheet\Exception */ - public function copyCellCollection(\PhpSpreadsheet\Worksheet $parent) + public function copyCellCollection(\PhpOffice\PhpSpreadsheet\Worksheet $parent) { parent::copyCellCollection($parent); // Get a new id for the new file name @@ -207,11 +207,11 @@ class Wincache extends CacheBase implements ICache if ($success === false) { // Entry no longer exists in WinCache, so clear it from the cache array parent::deleteCacheData($cellID); - throw new \PhpSpreadsheet\Exception('Cell entry ' . $cellID . ' no longer exists in Wincache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell entry ' . $cellID . ' no longer exists in Wincache'); } if (!wincache_ucache_add($newCachePrefix . $cellID . '.cache', $obj, $this->cacheTime)) { $this->__destruct(); - throw new \PhpSpreadsheet\Exception('Failed to store cell ' . $cellID . ' in Wincache'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Failed to store cell ' . $cellID . ' in Wincache'); } } } @@ -240,10 +240,10 @@ class Wincache extends CacheBase implements ICache /** * Initialise this new cell collection * - * @param \PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent The worksheet for this cell collection * @param mixed[] $arguments Additional initialisation arguments */ - public function __construct(\PhpSpreadsheet\Worksheet $parent, $arguments) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent, $arguments) { $cacheTime = (isset($arguments['cacheTime'])) ? $arguments['cacheTime'] : 600; diff --git a/src/PhpSpreadsheet/CachedObjectStorageFactory.php b/src/PhpSpreadsheet/CachedObjectStorageFactory.php index ab83153e..8960e3d1 100644 --- a/src/PhpSpreadsheet/CachedObjectStorageFactory.php +++ b/src/PhpSpreadsheet/CachedObjectStorageFactory.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -148,7 +148,7 @@ class CachedObjectStorageFactory { $activeMethods = []; foreach (self::$storageMethods as $storageMethod) { - $cacheStorageClass = '\\PhpSpreadsheet\\CachedObjectStorage\\' . $storageMethod; + $cacheStorageClass = '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\' . $storageMethod; if (call_user_func([$cacheStorageClass, 'cacheMethodIsAvailable'])) { $activeMethods[] = $storageMethod; } @@ -171,7 +171,7 @@ class CachedObjectStorageFactory return false; } - $cacheStorageClass = '\\PhpSpreadsheet\\CachedObjectStorage\\' . $method; + $cacheStorageClass = '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\' . $method; if (!call_user_func([$cacheStorageClass, 'cacheMethodIsAvailable'])) { return false; } @@ -184,7 +184,7 @@ class CachedObjectStorageFactory } if (self::$cacheStorageMethod === null) { - self::$cacheStorageClass = '\\PhpSpreadsheet\\CachedObjectStorage\\' . $method; + self::$cacheStorageClass = '\\PhpOffice\\PhpSpreadsheet\\CachedObjectStorage\\' . $method; self::$cacheStorageMethod = $method; } diff --git a/src/PhpSpreadsheet/CalcEngine/CyclicReferenceStack.php b/src/PhpSpreadsheet/CalcEngine/CyclicReferenceStack.php index 36977c38..36fe43aa 100644 --- a/src/PhpSpreadsheet/CalcEngine/CyclicReferenceStack.php +++ b/src/PhpSpreadsheet/CalcEngine/CyclicReferenceStack.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CalcEngine; +namespace PhpOffice\PhpSpreadsheet\CalcEngine; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/CalcEngine/Logger.php b/src/PhpSpreadsheet/CalcEngine/Logger.php index a5c1ed5f..f5e13dd8 100644 --- a/src/PhpSpreadsheet/CalcEngine/Logger.php +++ b/src/PhpSpreadsheet/CalcEngine/Logger.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\CalcEngine; +namespace PhpOffice\PhpSpreadsheet\CalcEngine; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Calculation.php b/src/PhpSpreadsheet/Calculation.php index 37be865c..c60ce0c5 100644 --- a/src/PhpSpreadsheet/Calculation.php +++ b/src/PhpSpreadsheet/Calculation.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; if (!defined('CALCULATION_REGEXP_CELLREF')) { // Test for support of \P (multibyte options) in PCRE @@ -68,7 +68,7 @@ class Calculation /** * Instance of this class * - * @var \PhpSpreadsheet\Calculation + * @var \PhpOffice\PhpSpreadsheet\Calculation */ private static $instance; @@ -82,7 +82,7 @@ class Calculation /** * List of instances of the calculation engine that we've instantiated for individual spreadsheets * - * @var \PhpSpreadsheet\Calculation[] + * @var \PhpOffice\PhpSpreadsheet\Calculation[] */ private static $spreadsheetSets; @@ -239,12 +239,12 @@ class Calculation ], 'ACCRINT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::ACCRINT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::ACCRINT', 'argumentCount' => '4-7', ], 'ACCRINTM' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::ACCRINTM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::ACCRINTM', 'argumentCount' => '3-5', ], 'ACOS' => [ @@ -259,22 +259,22 @@ class Calculation ], 'ADDRESS' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::cellAddress', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::cellAddress', 'argumentCount' => '2-5', ], 'AMORDEGRC' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::AMORDEGRC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::AMORDEGRC', 'argumentCount' => '6,7', ], 'AMORLINC' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::AMORLINC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::AMORLINC', 'argumentCount' => '6,7', ], 'AND' => [ 'category' => Calculation\Categories::CATEGORY_LOGICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Logical::logicalAnd', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical::logicalAnd', 'argumentCount' => '1+', ], 'AREAS' => [ @@ -304,7 +304,7 @@ class Calculation ], 'ATAN2' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::ATAN2', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::ATAN2', 'argumentCount' => '2', ], 'ATANH' => [ @@ -314,22 +314,22 @@ class Calculation ], 'AVEDEV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::AVEDEV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::AVEDEV', 'argumentCount' => '1+', ], 'AVERAGE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::AVERAGE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::AVERAGE', 'argumentCount' => '1+', ], 'AVERAGEA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::AVERAGEA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::AVERAGEA', 'argumentCount' => '1+', ], 'AVERAGEIF' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::AVERAGEIF', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::AVERAGEIF', 'argumentCount' => '2,3', ], 'AVERAGEIFS' => [ @@ -344,57 +344,57 @@ class Calculation ], 'BESSELI' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::BESSELI', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::BESSELI', 'argumentCount' => '2', ], 'BESSELJ' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::BESSELJ', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::BESSELJ', 'argumentCount' => '2', ], 'BESSELK' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::BESSELK', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::BESSELK', 'argumentCount' => '2', ], 'BESSELY' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::BESSELY', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::BESSELY', 'argumentCount' => '2', ], 'BETADIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::BETADIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::BETADIST', 'argumentCount' => '3-5', ], 'BETAINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::BETAINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::BETAINV', 'argumentCount' => '3-5', ], 'BIN2DEC' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::BINTODEC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::BINTODEC', 'argumentCount' => '1', ], 'BIN2HEX' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::BINTOHEX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::BINTOHEX', 'argumentCount' => '1,2', ], 'BIN2OCT' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::BINTOOCT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::BINTOOCT', 'argumentCount' => '1,2', ], 'BINOMDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::BINOMDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::BINOMDIST', 'argumentCount' => '4', ], 'CEILING' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::CEILING', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::CEILING', 'argumentCount' => '2', ], 'CELL' => [ @@ -404,17 +404,17 @@ class Calculation ], 'CHAR' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::CHARACTER', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::CHARACTER', 'argumentCount' => '1', ], 'CHIDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::CHIDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::CHIDIST', 'argumentCount' => '2', ], 'CHIINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::CHIINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::CHIINV', 'argumentCount' => '2', ], 'CHITEST' => [ @@ -424,58 +424,58 @@ class Calculation ], 'CHOOSE' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::CHOOSE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::CHOOSE', 'argumentCount' => '2+', ], 'CLEAN' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::TRIMNONPRINTABLE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::TRIMNONPRINTABLE', 'argumentCount' => '1', ], 'CODE' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::ASCIICODE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::ASCIICODE', 'argumentCount' => '1', ], 'COLUMN' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::COLUMN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::COLUMN', 'argumentCount' => '-1', 'passByReference' => [true], ], 'COLUMNS' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::COLUMNS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::COLUMNS', 'argumentCount' => '1', ], 'COMBIN' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::COMBIN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::COMBIN', 'argumentCount' => '2', ], 'COMPLEX' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::COMPLEX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::COMPLEX', 'argumentCount' => '2,3', ], 'CONCATENATE' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::CONCATENATE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::CONCATENATE', 'argumentCount' => '1+', ], 'CONFIDENCE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::CONFIDENCE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::CONFIDENCE', 'argumentCount' => '3', ], 'CONVERT' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::CONVERTUOM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::CONVERTUOM', 'argumentCount' => '3', ], 'CORREL' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::CORREL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::CORREL', 'argumentCount' => '2', ], 'COS' => [ @@ -490,22 +490,22 @@ class Calculation ], 'COUNT' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::COUNT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::COUNT', 'argumentCount' => '1+', ], 'COUNTA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::COUNTA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::COUNTA', 'argumentCount' => '1+', ], 'COUNTBLANK' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::COUNTBLANK', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::COUNTBLANK', 'argumentCount' => '1', ], 'COUNTIF' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::COUNTIF', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::COUNTIF', 'argumentCount' => '2', ], 'COUNTIFS' => [ @@ -515,42 +515,42 @@ class Calculation ], 'COUPDAYBS' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::COUPDAYBS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::COUPDAYBS', 'argumentCount' => '3,4', ], 'COUPDAYS' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::COUPDAYS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::COUPDAYS', 'argumentCount' => '3,4', ], 'COUPDAYSNC' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::COUPDAYSNC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::COUPDAYSNC', 'argumentCount' => '3,4', ], 'COUPNCD' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::COUPNCD', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::COUPNCD', 'argumentCount' => '3,4', ], 'COUPNUM' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::COUPNUM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::COUPNUM', 'argumentCount' => '3,4', ], 'COUPPCD' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::COUPPCD', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::COUPPCD', 'argumentCount' => '3,4', ], 'COVAR' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::COVAR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::COVAR', 'argumentCount' => '2', ], 'CRITBINOM' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::CRITBINOM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::CRITBINOM', 'argumentCount' => '3', ], 'CUBEKPIMEMBER' => [ @@ -590,77 +590,77 @@ class Calculation ], 'CUMIPMT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::CUMIPMT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::CUMIPMT', 'argumentCount' => '6', ], 'CUMPRINC' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::CUMPRINC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::CUMPRINC', 'argumentCount' => '6', ], 'DATE' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DATE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DATE', 'argumentCount' => '3', ], 'DATEDIF' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DATEDIF', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DATEDIF', 'argumentCount' => '2,3', ], 'DATEVALUE' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DATEVALUE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DATEVALUE', 'argumentCount' => '1', ], 'DAVERAGE' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DAVERAGE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DAVERAGE', 'argumentCount' => '3', ], 'DAY' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DAYOFMONTH', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DAYOFMONTH', 'argumentCount' => '1', ], 'DAYS360' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DAYS360', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DAYS360', 'argumentCount' => '2,3', ], 'DB' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::DB', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::DB', 'argumentCount' => '4,5', ], 'DCOUNT' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DCOUNT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DCOUNT', 'argumentCount' => '3', ], 'DCOUNTA' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DCOUNTA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DCOUNTA', 'argumentCount' => '3', ], 'DDB' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::DDB', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::DDB', 'argumentCount' => '4,5', ], 'DEC2BIN' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::DECTOBIN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::DECTOBIN', 'argumentCount' => '1,2', ], 'DEC2HEX' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::DECTOHEX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::DECTOHEX', 'argumentCount' => '1,2', ], 'DEC2OCT' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::DECTOOCT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::DECTOOCT', 'argumentCount' => '1,2', ], 'DEGREES' => [ @@ -670,67 +670,67 @@ class Calculation ], 'DELTA' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::DELTA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::DELTA', 'argumentCount' => '1,2', ], 'DEVSQ' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::DEVSQ', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::DEVSQ', 'argumentCount' => '1+', ], 'DGET' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DGET', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DGET', 'argumentCount' => '3', ], 'DISC' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::DISC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::DISC', 'argumentCount' => '4,5', ], 'DMAX' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DMAX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DMAX', 'argumentCount' => '3', ], 'DMIN' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DMIN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DMIN', 'argumentCount' => '3', ], 'DOLLAR' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::DOLLAR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::DOLLAR', 'argumentCount' => '1,2', ], 'DOLLARDE' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::DOLLARDE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::DOLLARDE', 'argumentCount' => '2', ], 'DOLLARFR' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::DOLLARFR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::DOLLARFR', 'argumentCount' => '2', ], 'DPRODUCT' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DPRODUCT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DPRODUCT', 'argumentCount' => '3', ], 'DSTDEV' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DSTDEV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DSTDEV', 'argumentCount' => '3', ], 'DSTDEVP' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DSTDEVP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DSTDEVP', 'argumentCount' => '3', ], 'DSUM' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DSUM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DSUM', 'argumentCount' => '3', ], 'DURATION' => [ @@ -740,37 +740,37 @@ class Calculation ], 'DVAR' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DVAR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DVAR', 'argumentCount' => '3', ], 'DVARP' => [ 'category' => Calculation\Categories::CATEGORY_DATABASE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Database::DVARP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Database::DVARP', 'argumentCount' => '3', ], 'EDATE' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::EDATE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::EDATE', 'argumentCount' => '2', ], 'EFFECT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::EFFECT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::EFFECT', 'argumentCount' => '2', ], 'EOMONTH' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::EOMONTH', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::EOMONTH', 'argumentCount' => '2', ], 'ERF' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::ERF', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::ERF', 'argumentCount' => '1,2', ], 'ERFC' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::ERFC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::ERFC', 'argumentCount' => '1', ], 'ERROR.TYPE' => [ @@ -780,7 +780,7 @@ class Calculation ], 'EVEN' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::EVEN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::EVEN', 'argumentCount' => '1', ], 'EXACT' => [ @@ -795,22 +795,22 @@ class Calculation ], 'EXPONDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::EXPONDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::EXPONDIST', 'argumentCount' => '3', ], 'FACT' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::FACT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::FACT', 'argumentCount' => '1', ], 'FACTDOUBLE' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::FACTDOUBLE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::FACTDOUBLE', 'argumentCount' => '1', ], 'FALSE' => [ 'category' => Calculation\Categories::CATEGORY_LOGICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Logical::FALSE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical::FALSE', 'argumentCount' => '0', ], 'FDIST' => [ @@ -820,12 +820,12 @@ class Calculation ], 'FIND' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::SEARCHSENSITIVE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::SEARCHSENSITIVE', 'argumentCount' => '2,3', ], 'FINDB' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::SEARCHSENSITIVE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::SEARCHSENSITIVE', 'argumentCount' => '2,3', ], 'FINV' => [ @@ -835,27 +835,27 @@ class Calculation ], 'FISHER' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::FISHER', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::FISHER', 'argumentCount' => '1', ], 'FISHERINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::FISHERINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::FISHERINV', 'argumentCount' => '1', ], 'FIXED' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::FIXEDFORMAT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::FIXEDFORMAT', 'argumentCount' => '1-3', ], 'FLOOR' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::FLOOR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::FLOOR', 'argumentCount' => '2', ], 'FORECAST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::FORECAST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::FORECAST', 'argumentCount' => '3', ], 'FREQUENCY' => [ @@ -870,42 +870,42 @@ class Calculation ], 'FV' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::FV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::FV', 'argumentCount' => '3-5', ], 'FVSCHEDULE' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::FVSCHEDULE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::FVSCHEDULE', 'argumentCount' => '2', ], 'GAMMADIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::GAMMADIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::GAMMADIST', 'argumentCount' => '4', ], 'GAMMAINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::GAMMAINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::GAMMAINV', 'argumentCount' => '3', ], 'GAMMALN' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::GAMMALN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::GAMMALN', 'argumentCount' => '1', ], 'GCD' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::GCD', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::GCD', 'argumentCount' => '1+', ], 'GEOMEAN' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::GEOMEAN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::GEOMEAN', 'argumentCount' => '1+', ], 'GESTEP' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::GESTEP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::GESTEP', 'argumentCount' => '1,2', ], 'GETPIVOTDATA' => [ @@ -915,153 +915,153 @@ class Calculation ], 'GROWTH' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::GROWTH', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::GROWTH', 'argumentCount' => '1-4', ], 'HARMEAN' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::HARMEAN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::HARMEAN', 'argumentCount' => '1+', ], 'HEX2BIN' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::HEXTOBIN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::HEXTOBIN', 'argumentCount' => '1,2', ], 'HEX2DEC' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::HEXTODEC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::HEXTODEC', 'argumentCount' => '1', ], 'HEX2OCT' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::HEXTOOCT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::HEXTOOCT', 'argumentCount' => '1,2', ], 'HLOOKUP' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::HLOOKUP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::HLOOKUP', 'argumentCount' => '3,4', ], 'HOUR' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::HOUROFDAY', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::HOUROFDAY', 'argumentCount' => '1', ], 'HYPERLINK' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::HYPERLINK', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::HYPERLINK', 'argumentCount' => '1,2', 'passCellReference' => true, ], 'HYPGEOMDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::HYPGEOMDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::HYPGEOMDIST', 'argumentCount' => '4', ], 'IF' => [ 'category' => Calculation\Categories::CATEGORY_LOGICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Logical::statementIf', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical::statementIf', 'argumentCount' => '1-3', ], 'IFERROR' => [ 'category' => Calculation\Categories::CATEGORY_LOGICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Logical::IFERROR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical::IFERROR', 'argumentCount' => '2', ], 'IMABS' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMABS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMABS', 'argumentCount' => '1', ], 'IMAGINARY' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMAGINARY', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMAGINARY', 'argumentCount' => '1', ], 'IMARGUMENT' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMARGUMENT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMARGUMENT', 'argumentCount' => '1', ], 'IMCONJUGATE' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMCONJUGATE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMCONJUGATE', 'argumentCount' => '1', ], 'IMCOS' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMCOS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMCOS', 'argumentCount' => '1', ], 'IMDIV' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMDIV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMDIV', 'argumentCount' => '2', ], 'IMEXP' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMEXP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMEXP', 'argumentCount' => '1', ], 'IMLN' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMLN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMLN', 'argumentCount' => '1', ], 'IMLOG10' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMLOG10', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMLOG10', 'argumentCount' => '1', ], 'IMLOG2' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMLOG2', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMLOG2', 'argumentCount' => '1', ], 'IMPOWER' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMPOWER', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMPOWER', 'argumentCount' => '2', ], 'IMPRODUCT' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMPRODUCT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMPRODUCT', 'argumentCount' => '1+', ], 'IMREAL' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMREAL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMREAL', 'argumentCount' => '1', ], 'IMSIN' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMSIN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMSIN', 'argumentCount' => '1', ], 'IMSQRT' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMSQRT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMSQRT', 'argumentCount' => '1', ], 'IMSUB' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMSUB', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMSUB', 'argumentCount' => '2', ], 'IMSUM' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::IMSUM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::IMSUM', 'argumentCount' => '1+', ], 'INDEX' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::INDEX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::INDEX', 'argumentCount' => '1-4', ], 'INDIRECT' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::INDIRECT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::INDIRECT', 'argumentCount' => '1,2', 'passCellReference' => true, ], @@ -1072,27 +1072,27 @@ class Calculation ], 'INT' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::INT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::INT', 'argumentCount' => '1', ], 'INTERCEPT' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::INTERCEPT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::INTERCEPT', 'argumentCount' => '2', ], 'INTRATE' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::INTRATE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::INTRATE', 'argumentCount' => '4,5', ], 'IPMT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::IPMT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::IPMT', 'argumentCount' => '4-6', ], 'IRR' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::IRR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::IRR', 'argumentCount' => '1,2', ], 'ISBLANK' => [ @@ -1142,7 +1142,7 @@ class Calculation ], 'ISPMT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::ISPMT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::ISPMT', 'argumentCount' => '4', ], 'ISREF' => [ @@ -1162,42 +1162,42 @@ class Calculation ], 'KURT' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::KURT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::KURT', 'argumentCount' => '1+', ], 'LARGE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::LARGE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::LARGE', 'argumentCount' => '2', ], 'LCM' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::LCM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::LCM', 'argumentCount' => '1+', ], 'LEFT' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::LEFT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::LEFT', 'argumentCount' => '1,2', ], 'LEFTB' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::LEFT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::LEFT', 'argumentCount' => '1,2', ], 'LEN' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::STRINGLENGTH', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::STRINGLENGTH', 'argumentCount' => '1', ], 'LENB' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::STRINGLENGTH', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::STRINGLENGTH', 'argumentCount' => '1', ], 'LINEST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::LINEST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::LINEST', 'argumentCount' => '1-4', ], 'LN' => [ @@ -1207,7 +1207,7 @@ class Calculation ], 'LOG' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::logBase', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::logBase', 'argumentCount' => '1,2', ], 'LOG10' => [ @@ -1217,52 +1217,52 @@ class Calculation ], 'LOGEST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::LOGEST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::LOGEST', 'argumentCount' => '1-4', ], 'LOGINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::LOGINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::LOGINV', 'argumentCount' => '3', ], 'LOGNORMDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::LOGNORMDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::LOGNORMDIST', 'argumentCount' => '3', ], 'LOOKUP' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::LOOKUP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::LOOKUP', 'argumentCount' => '2,3', ], 'LOWER' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::LOWERCASE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::LOWERCASE', 'argumentCount' => '1', ], 'MATCH' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::MATCH', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::MATCH', 'argumentCount' => '2,3', ], 'MAX' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MAX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MAX', 'argumentCount' => '1+', ], 'MAXA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MAXA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MAXA', 'argumentCount' => '1+', ], 'MAXIF' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MAXIF', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MAXIF', 'argumentCount' => '2+', ], 'MDETERM' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::MDETERM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::MDETERM', 'argumentCount' => '1', ], 'MDURATION' => [ @@ -1272,7 +1272,7 @@ class Calculation ], 'MEDIAN' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MEDIAN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MEDIAN', 'argumentCount' => '1+', ], 'MEDIANIF' => [ @@ -1282,72 +1282,72 @@ class Calculation ], 'MID' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::MID', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::MID', 'argumentCount' => '3', ], 'MIDB' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::MID', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::MID', 'argumentCount' => '3', ], 'MIN' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MIN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MIN', 'argumentCount' => '1+', ], 'MINA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MINA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MINA', 'argumentCount' => '1+', ], 'MINIF' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MINIF', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MINIF', 'argumentCount' => '2+', ], 'MINUTE' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::MINUTEOFHOUR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::MINUTEOFHOUR', 'argumentCount' => '1', ], 'MINVERSE' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::MINVERSE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::MINVERSE', 'argumentCount' => '1', ], 'MIRR' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::MIRR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::MIRR', 'argumentCount' => '3', ], 'MMULT' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::MMULT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::MMULT', 'argumentCount' => '2', ], 'MOD' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::MOD', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::MOD', 'argumentCount' => '2', ], 'MODE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::MODE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::MODE', 'argumentCount' => '1+', ], 'MONTH' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::MONTHOFYEAR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::MONTHOFYEAR', 'argumentCount' => '1', ], 'MROUND' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::MROUND', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::MROUND', 'argumentCount' => '2', ], 'MULTINOMIAL' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::MULTINOMIAL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::MULTINOMIAL', 'argumentCount' => '1+', ], 'N' => [ @@ -1362,77 +1362,77 @@ class Calculation ], 'NEGBINOMDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::NEGBINOMDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::NEGBINOMDIST', 'argumentCount' => '3', ], 'NETWORKDAYS' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::NETWORKDAYS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::NETWORKDAYS', 'argumentCount' => '2+', ], 'NOMINAL' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::NOMINAL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::NOMINAL', 'argumentCount' => '2', ], 'NORMDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::NORMDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::NORMDIST', 'argumentCount' => '4', ], 'NORMINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::NORMINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::NORMINV', 'argumentCount' => '3', ], 'NORMSDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::NORMSDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::NORMSDIST', 'argumentCount' => '1', ], 'NORMSINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::NORMSINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::NORMSINV', 'argumentCount' => '1', ], 'NOT' => [ 'category' => Calculation\Categories::CATEGORY_LOGICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Logical::NOT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical::NOT', 'argumentCount' => '1', ], 'NOW' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DATETIMENOW', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DATETIMENOW', 'argumentCount' => '0', ], 'NPER' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::NPER', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::NPER', 'argumentCount' => '3-5', ], 'NPV' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::NPV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::NPV', 'argumentCount' => '2+', ], 'OCT2BIN' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::OCTTOBIN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::OCTTOBIN', 'argumentCount' => '1,2', ], 'OCT2DEC' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::OCTTODEC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::OCTTODEC', 'argumentCount' => '1', ], 'OCT2HEX' => [ 'category' => Calculation\Categories::CATEGORY_ENGINEERING, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Engineering::OCTTOHEX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Engineering::OCTTOHEX', 'argumentCount' => '1,2', ], 'ODD' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::ODD', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::ODD', 'argumentCount' => '1', ], 'ODDFPRICE' => [ @@ -1457,34 +1457,34 @@ class Calculation ], 'OFFSET' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::OFFSET', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::OFFSET', 'argumentCount' => '3-5', 'passCellReference' => true, 'passByReference' => [true], ], 'OR' => [ 'category' => Calculation\Categories::CATEGORY_LOGICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Logical::logicalOr', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical::logicalOr', 'argumentCount' => '1+', ], 'PEARSON' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::CORREL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::CORREL', 'argumentCount' => '2', ], 'PERCENTILE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::PERCENTILE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::PERCENTILE', 'argumentCount' => '2', ], 'PERCENTRANK' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::PERCENTRANK', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::PERCENTRANK', 'argumentCount' => '2,3', ], 'PERMUT' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::PERMUT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::PERMUT', 'argumentCount' => '2', ], 'PHONETIC' => [ @@ -1499,37 +1499,37 @@ class Calculation ], 'PMT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::PMT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::PMT', 'argumentCount' => '3-5', ], 'POISSON' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::POISSON', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::POISSON', 'argumentCount' => '3', ], 'POWER' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::POWER', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::POWER', 'argumentCount' => '2', ], 'PPMT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::PPMT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::PPMT', 'argumentCount' => '4-6', ], 'PRICE' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::PRICE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::PRICE', 'argumentCount' => '6,7', ], 'PRICEDISC' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::PRICEDISC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::PRICEDISC', 'argumentCount' => '4,5', ], 'PRICEMAT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::PRICEMAT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::PRICEMAT', 'argumentCount' => '5,6', ], 'PROB' => [ @@ -1539,27 +1539,27 @@ class Calculation ], 'PRODUCT' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::PRODUCT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::PRODUCT', 'argumentCount' => '1+', ], 'PROPER' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::PROPERCASE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::PROPERCASE', 'argumentCount' => '1', ], 'PV' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::PV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::PV', 'argumentCount' => '3-5', ], 'QUARTILE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::QUARTILE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::QUARTILE', 'argumentCount' => '2', ], 'QUOTIENT' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::QUOTIENT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::QUOTIENT', 'argumentCount' => '2', ], 'RADIANS' => [ @@ -1569,37 +1569,37 @@ class Calculation ], 'RAND' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::RAND', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::RAND', 'argumentCount' => '0', ], 'RANDBETWEEN' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::RAND', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::RAND', 'argumentCount' => '2', ], 'RANK' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::RANK', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::RANK', 'argumentCount' => '2,3', ], 'RATE' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::RATE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::RATE', 'argumentCount' => '3-6', ], 'RECEIVED' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::RECEIVED', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::RECEIVED', 'argumentCount' => '4-5', ], 'REPLACE' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::REPLACE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::REPLACE', 'argumentCount' => '4', ], 'REPLACEB' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::REPLACE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::REPLACE', 'argumentCount' => '4', ], 'REPT' => [ @@ -1609,17 +1609,17 @@ class Calculation ], 'RIGHT' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::RIGHT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::RIGHT', 'argumentCount' => '1,2', ], 'RIGHTB' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::RIGHT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::RIGHT', 'argumentCount' => '1,2', ], 'ROMAN' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::ROMAN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::ROMAN', 'argumentCount' => '1,2', ], 'ROUND' => [ @@ -1629,28 +1629,28 @@ class Calculation ], 'ROUNDDOWN' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::ROUNDDOWN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::ROUNDDOWN', 'argumentCount' => '2', ], 'ROUNDUP' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::ROUNDUP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::ROUNDUP', 'argumentCount' => '2', ], 'ROW' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::ROW', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::ROW', 'argumentCount' => '-1', 'passByReference' => [true], ], 'ROWS' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::ROWS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::ROWS', 'argumentCount' => '1', ], 'RSQ' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::RSQ', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::RSQ', 'argumentCount' => '2', ], 'RTD' => [ @@ -1660,27 +1660,27 @@ class Calculation ], 'SEARCH' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::SEARCHINSENSITIVE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::SEARCHINSENSITIVE', 'argumentCount' => '2,3', ], 'SEARCHB' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::SEARCHINSENSITIVE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::SEARCHINSENSITIVE', 'argumentCount' => '2,3', ], 'SECOND' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::SECONDOFMINUTE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::SECONDOFMINUTE', 'argumentCount' => '1', ], 'SERIESSUM' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SERIESSUM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SERIESSUM', 'argumentCount' => '4', ], 'SIGN' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SIGN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SIGN', 'argumentCount' => '1', ], 'SIN' => [ @@ -1695,22 +1695,22 @@ class Calculation ], 'SKEW' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::SKEW', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::SKEW', 'argumentCount' => '1+', ], 'SLN' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::SLN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::SLN', 'argumentCount' => '3', ], 'SLOPE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::SLOPE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::SLOPE', 'argumentCount' => '2', ], 'SMALL' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::SMALL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::SMALL', 'argumentCount' => '2', ], 'SQRT' => [ @@ -1720,97 +1720,97 @@ class Calculation ], 'SQRTPI' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SQRTPI', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SQRTPI', 'argumentCount' => '1', ], 'STANDARDIZE' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::STANDARDIZE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::STANDARDIZE', 'argumentCount' => '3', ], 'STDEV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::STDEV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::STDEV', 'argumentCount' => '1+', ], 'STDEVA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::STDEVA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::STDEVA', 'argumentCount' => '1+', ], 'STDEVP' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::STDEVP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::STDEVP', 'argumentCount' => '1+', ], 'STDEVPA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::STDEVPA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::STDEVPA', 'argumentCount' => '1+', ], 'STEYX' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::STEYX', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::STEYX', 'argumentCount' => '2', ], 'SUBSTITUTE' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::SUBSTITUTE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::SUBSTITUTE', 'argumentCount' => '3,4', ], 'SUBTOTAL' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUBTOTAL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUBTOTAL', 'argumentCount' => '2+', ], 'SUM' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUM', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUM', 'argumentCount' => '1+', ], 'SUMIF' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUMIF', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUMIF', 'argumentCount' => '2,3', ], 'SUMIFS' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUMIFS', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUMIFS', 'argumentCount' => '3+', ], 'SUMPRODUCT' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUMPRODUCT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUMPRODUCT', 'argumentCount' => '1+', ], 'SUMSQ' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUMSQ', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUMSQ', 'argumentCount' => '1+', ], 'SUMX2MY2' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUMX2MY2', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUMX2MY2', 'argumentCount' => '2', ], 'SUMX2PY2' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUMX2PY2', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUMX2PY2', 'argumentCount' => '2', ], 'SUMXMY2' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::SUMXMY2', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::SUMXMY2', 'argumentCount' => '2', ], 'SYD' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::SYD', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::SYD', 'argumentCount' => '4', ], 'T' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::RETURNSTRING', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::RETURNSTRING', 'argumentCount' => '1', ], 'TAN' => [ @@ -1825,77 +1825,77 @@ class Calculation ], 'TBILLEQ' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::TBILLEQ', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::TBILLEQ', 'argumentCount' => '3', ], 'TBILLPRICE' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::TBILLPRICE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::TBILLPRICE', 'argumentCount' => '3', ], 'TBILLYIELD' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::TBILLYIELD', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::TBILLYIELD', 'argumentCount' => '3', ], 'TDIST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::TDIST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::TDIST', 'argumentCount' => '3', ], 'TEXT' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::TEXTFORMAT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::TEXTFORMAT', 'argumentCount' => '2', ], 'TIME' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::TIME', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::TIME', 'argumentCount' => '3', ], 'TIMEVALUE' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::TIMEVALUE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::TIMEVALUE', 'argumentCount' => '1', ], 'TINV' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::TINV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::TINV', 'argumentCount' => '2', ], 'TODAY' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DATENOW', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DATENOW', 'argumentCount' => '0', ], 'TRANSPOSE' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::TRANSPOSE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::TRANSPOSE', 'argumentCount' => '1', ], 'TREND' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::TREND', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::TREND', 'argumentCount' => '1-4', ], 'TRIM' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::TRIMSPACES', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::TRIMSPACES', 'argumentCount' => '1', ], 'TRIMMEAN' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::TRIMMEAN', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::TRIMMEAN', 'argumentCount' => '2', ], 'TRUE' => [ 'category' => Calculation\Categories::CATEGORY_LOGICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Logical::TRUE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Logical::TRUE', 'argumentCount' => '0', ], 'TRUNC' => [ 'category' => Calculation\Categories::CATEGORY_MATH_AND_TRIG, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\MathTrig::TRUNC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\MathTrig::TRUNC', 'argumentCount' => '1,2', ], 'TTEST' => [ @@ -1910,7 +1910,7 @@ class Calculation ], 'UPPER' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::UPPERCASE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::UPPERCASE', 'argumentCount' => '1', ], 'USDOLLAR' => [ @@ -1920,27 +1920,27 @@ class Calculation ], 'VALUE' => [ 'category' => Calculation\Categories::CATEGORY_TEXT_AND_DATA, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\TextData::VALUE', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\TextData::VALUE', 'argumentCount' => '1', ], 'VAR' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::VARFunc', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::VARFunc', 'argumentCount' => '1+', ], 'VARA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::VARA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::VARA', 'argumentCount' => '1+', ], 'VARP' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::VARP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::VARP', 'argumentCount' => '1+', ], 'VARPA' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::VARPA', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::VARPA', 'argumentCount' => '1+', ], 'VDB' => [ @@ -1955,47 +1955,47 @@ class Calculation ], 'VLOOKUP' => [ 'category' => Calculation\Categories::CATEGORY_LOOKUP_AND_REFERENCE, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\LookupRef::VLOOKUP', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\LookupRef::VLOOKUP', 'argumentCount' => '3,4', ], 'WEEKDAY' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::DAYOFWEEK', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::DAYOFWEEK', 'argumentCount' => '1,2', ], 'WEEKNUM' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::WEEKOFYEAR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::WEEKOFYEAR', 'argumentCount' => '1,2', ], 'WEIBULL' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::WEIBULL', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::WEIBULL', 'argumentCount' => '4', ], 'WORKDAY' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::WORKDAY', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::WORKDAY', 'argumentCount' => '2+', ], 'XIRR' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::XIRR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::XIRR', 'argumentCount' => '2,3', ], 'XNPV' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::XNPV', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::XNPV', 'argumentCount' => '3', ], 'YEAR' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::YEAR', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::YEAR', 'argumentCount' => '1', ], 'YEARFRAC' => [ 'category' => Calculation\Categories::CATEGORY_DATE_AND_TIME, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\DateTime::YEARFRAC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\DateTime::YEARFRAC', 'argumentCount' => '2,3', ], 'YIELD' => [ @@ -2005,17 +2005,17 @@ class Calculation ], 'YIELDDISC' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::YIELDDISC', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::YIELDDISC', 'argumentCount' => '4,5', ], 'YIELDMAT' => [ 'category' => Calculation\Categories::CATEGORY_FINANCIAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Financial::YIELDMAT', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Financial::YIELDMAT', 'argumentCount' => '5,6', ], 'ZTEST' => [ 'category' => Calculation\Categories::CATEGORY_STATISTICAL, - 'functionCall' => '\\PhpSpreadsheet\\Calculation\\Statistical::ZTEST', + 'functionCall' => '\\PhpOffice\\PhpSpreadsheet\\Calculation\\Statistical::ZTEST', 'argumentCount' => '2-3', ], ]; @@ -2065,7 +2065,7 @@ class Calculation } if (!isset(self::$instance) || (self::$instance === null)) { - self::$instance = new \PhpSpreadsheet\Calculation(); + self::$instance = new \PhpOffice\PhpSpreadsheet\Calculation(); } return self::$instance; @@ -2083,7 +2083,7 @@ class Calculation /** * Flush the calculation cache for any existing instance of this class - * but only if a \PhpSpreadsheet\Calculation instance exists + * but only if a \PhpOffice\PhpSpreadsheet\Calculation instance exists */ public function flushInstance() { diff --git a/src/PhpSpreadsheet/Calculation/Categories.php b/src/PhpSpreadsheet/Calculation/Categories.php index 8f3ba238..9d992d3e 100644 --- a/src/PhpSpreadsheet/Calculation/Categories.php +++ b/src/PhpSpreadsheet/Calculation/Categories.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Calculation/Database.php b/src/PhpSpreadsheet/Calculation/Database.php index 1468b9d3..71faf805 100644 --- a/src/PhpSpreadsheet/Calculation/Database.php +++ b/src/PhpSpreadsheet/Calculation/Database.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -114,12 +114,12 @@ class Database $k = array_search($criteriaName, $fieldNames); if (isset($dataValues[$k])) { $dataValue = $dataValues[$k]; - $dataValue = (is_string($dataValue)) ? \PhpSpreadsheet\Calculation::wrapResult(strtoupper($dataValue)) : $dataValue; + $dataValue = (is_string($dataValue)) ? \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($dataValue)) : $dataValue; $testConditionList = str_replace('[:' . $criteriaName . ']', $dataValue, $testConditionList); } } // evaluate the criteria against the row data - $result = \PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue('=' . $testConditionList); + $result = \PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue('=' . $testConditionList); // If the row failed to meet the criteria, remove it from the database if (!$result) { unset($database[$dataRow]); diff --git a/src/PhpSpreadsheet/Calculation/DateTime.php b/src/PhpSpreadsheet/Calculation/DateTime.php index 2efb017d..ceda521c 100644 --- a/src/PhpSpreadsheet/Calculation/DateTime.php +++ b/src/PhpSpreadsheet/Calculation/DateTime.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -87,7 +87,7 @@ class DateTime return Functions::VALUE(); } if ((is_object($dateValue)) && ($dateValue instanceof \DateTime)) { - $dateValue = \PhpSpreadsheet\Shared\Date::PHPToExcel($dateValue); + $dateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($dateValue); } else { $saveReturnDateType = Functions::getReturnDateType(); Functions::setReturnDateType(Functions::RETURNDATE_EXCEL); @@ -118,7 +118,7 @@ class DateTime private static function adjustDateByMonths($dateValue = 0, $adjustmentMonths = 0) { // Execute function - $PHPDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); + $PHPDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); $oMonth = (int) $PHPDateObject->format('m'); $oYear = (int) $PHPDateObject->format('Y'); @@ -167,7 +167,7 @@ class DateTime $retValue = false; switch (Functions::getReturnDateType()) { case Functions::RETURNDATE_EXCEL: - $retValue = (float) \PhpSpreadsheet\Shared\Date::PHPToExcel(time()); + $retValue = (float) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(time()); break; case Functions::RETURNDATE_PHP_NUMERIC: $retValue = (integer) time(); @@ -204,16 +204,16 @@ class DateTime $saveTimeZone = date_default_timezone_get(); date_default_timezone_set('UTC'); $retValue = false; - $excelDateTime = floor(\PhpSpreadsheet\Shared\Date::PHPToExcel(time())); + $excelDateTime = floor(\PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(time())); switch (Functions::getReturnDateType()) { case Functions::RETURNDATE_EXCEL: $retValue = (float) $excelDateTime; break; case Functions::RETURNDATE_PHP_NUMERIC: - $retValue = (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateTime); + $retValue = (integer) \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateTime); break; case Functions::RETURNDATE_PHP_OBJECT: - $retValue = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($excelDateTime); + $retValue = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($excelDateTime); break; } date_default_timezone_set($saveTimeZone); @@ -277,16 +277,16 @@ class DateTime $day = Functions::flattenSingleValue($day); if (($month !== null) && (!is_numeric($month))) { - $month = \PhpSpreadsheet\Shared\Date::monthStringToNumber($month); + $month = \PhpOffice\PhpSpreadsheet\Shared\Date::monthStringToNumber($month); } if (($day !== null) && (!is_numeric($day))) { - $day = \PhpSpreadsheet\Shared\Date::dayStringToNumber($day); + $day = \PhpOffice\PhpSpreadsheet\Shared\Date::dayStringToNumber($day); } - $year = ($year !== null) ? \PhpSpreadsheet\Shared\StringHelper::testStringAsNumeric($year) : 0; - $month = ($month !== null) ? \PhpSpreadsheet\Shared\StringHelper::testStringAsNumeric($month) : 0; - $day = ($day !== null) ? \PhpSpreadsheet\Shared\StringHelper::testStringAsNumeric($day) : 0; + $year = ($year !== null) ? \PhpOffice\PhpSpreadsheet\Shared\StringHelper::testStringAsNumeric($year) : 0; + $month = ($month !== null) ? \PhpOffice\PhpSpreadsheet\Shared\StringHelper::testStringAsNumeric($month) : 0; + $day = ($day !== null) ? \PhpOffice\PhpSpreadsheet\Shared\StringHelper::testStringAsNumeric($day) : 0; if ((!is_numeric($year)) || (!is_numeric($month)) || (!is_numeric($day))) { @@ -296,7 +296,7 @@ class DateTime $month = (integer) $month; $day = (integer) $day; - $baseYear = \PhpSpreadsheet\Shared\Date::getExcelCalendar(); + $baseYear = \PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar(); // Validate parameters if ($year < ($baseYear - 1900)) { return Functions::NAN(); @@ -326,14 +326,14 @@ class DateTime } // Execute function - $excelDateValue = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel($year, $month, $day); + $excelDateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel($year, $month, $day); switch (Functions::getReturnDateType()) { case Functions::RETURNDATE_EXCEL: return (float) $excelDateValue; case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateValue); + return (integer) \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateValue); case Functions::RETURNDATE_PHP_OBJECT: - return \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($excelDateValue); + return \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($excelDateValue); } } @@ -417,14 +417,14 @@ class DateTime switch (Functions::getReturnDateType()) { case Functions::RETURNDATE_EXCEL: $date = 0; - $calendar = \PhpSpreadsheet\Shared\Date::getExcelCalendar(); - if ($calendar != \PhpSpreadsheet\Shared\Date::CALENDAR_WINDOWS_1900) { + $calendar = \PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar(); + if ($calendar != \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_WINDOWS_1900) { $date = 1; } - return (float) \PhpSpreadsheet\Shared\Date::formattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second); + return (float) \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel($calendar, 1, $date, $hour, $minute, $second); case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpSpreadsheet\Shared\Date::formattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; // -2147472000 + 3600 + return (integer) \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel(1970, 1, 1, $hour, $minute, $second)); // -2147468400; // -2147472000 + 3600 case Functions::RETURNDATE_PHP_OBJECT: $dayAdjust = 0; if ($hour < 0) { @@ -559,7 +559,7 @@ class DateTime return Functions::VALUE(); } $excelDateValue = floor( - \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel( $PHPDateArray['year'], $PHPDateArray['month'], $PHPDateArray['day'], @@ -572,7 +572,7 @@ class DateTime case Functions::RETURNDATE_EXCEL: return (float) $excelDateValue; case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateValue); + return (integer) \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateValue); case Functions::RETURNDATE_PHP_OBJECT: return new \DateTime($PHPDateArray['year'] . '-' . $PHPDateArray['month'] . '-' . $PHPDateArray['day'] . ' 00:00:00'); } @@ -616,7 +616,7 @@ class DateTime $PHPDateArray = date_parse($timeValue); if (($PHPDateArray !== false) && ($PHPDateArray['error_count'] == 0)) { if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) { - $excelDateValue = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel( + $excelDateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel( $PHPDateArray['year'], $PHPDateArray['month'], $PHPDateArray['day'], @@ -625,14 +625,14 @@ class DateTime $PHPDateArray['second'] ); } else { - $excelDateValue = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel(1900, 1, 1, $PHPDateArray['hour'], $PHPDateArray['minute'], $PHPDateArray['second']) - 1; + $excelDateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel(1900, 1, 1, $PHPDateArray['hour'], $PHPDateArray['minute'], $PHPDateArray['second']) - 1; } switch (Functions::getReturnDateType()) { case Functions::RETURNDATE_EXCEL: return (float) $excelDateValue; case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) $phpDateValue = \PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateValue + 25569) - 3600; + return (integer) $phpDateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($excelDateValue + 25569) - 3600; case Functions::RETURNDATE_PHP_OBJECT: return new \DateTime('1900-01-01 ' . $PHPDateArray['hour'] . ':' . $PHPDateArray['minute'] . ':' . $PHPDateArray['second']); } @@ -672,12 +672,12 @@ class DateTime // Execute function $difference = $endDate - $startDate; - $PHPStartDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($startDate); + $PHPStartDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($startDate); $startDays = $PHPStartDateObject->format('j'); $startMonths = $PHPStartDateObject->format('n'); $startYears = $PHPStartDateObject->format('Y'); - $PHPEndDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($endDate); + $PHPEndDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($endDate); $endDays = $PHPEndDateObject->format('j'); $endMonths = $PHPEndDateObject->format('n'); $endYears = $PHPEndDateObject->format('Y'); @@ -791,12 +791,12 @@ class DateTime } // Execute function - $PHPStartDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($startDate); + $PHPStartDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($startDate); $startDay = $PHPStartDateObject->format('j'); $startMonth = $PHPStartDateObject->format('n'); $startYear = $PHPStartDateObject->format('Y'); - $PHPEndDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($endDate); + $PHPEndDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($endDate); $endDay = $PHPEndDateObject->format('j'); $endMonth = $PHPEndDateObject->format('n'); $endYear = $PHPEndDateObject->format('Y'); @@ -1087,9 +1087,9 @@ class DateTime case Functions::RETURNDATE_EXCEL: return (float) $endDate; case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp($endDate); + return (integer) \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($endDate); case Functions::RETURNDATE_PHP_OBJECT: - return \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($endDate); + return \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($endDate); } } @@ -1121,7 +1121,7 @@ class DateTime } // Execute function - $PHPDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); + $PHPDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); return (int) $PHPDateObject->format('j'); } @@ -1164,7 +1164,7 @@ class DateTime } // Execute function - $PHPDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); + $PHPDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); $DoW = $PHPDateObject->format('w'); $firstDay = 1; @@ -1239,7 +1239,7 @@ class DateTime } // Execute function - $PHPDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); + $PHPDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); $dayOfYear = $PHPDateObject->format('z'); $PHPDateObject->modify('-' . $dayOfYear . ' days'); $dow = $PHPDateObject->format('w'); @@ -1277,7 +1277,7 @@ class DateTime } // Execute function - $PHPDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); + $PHPDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); return (int) $PHPDateObject->format('n'); } @@ -1308,7 +1308,7 @@ class DateTime } // Execute function - $PHPDateObject = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); + $PHPDateObject = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($dateValue); return (int) $PHPDateObject->format('Y'); } @@ -1348,7 +1348,7 @@ class DateTime } elseif ($timeValue < 0.0) { return Functions::NAN(); } - $timeValue = \PhpSpreadsheet\Shared\Date::excelToTimestamp($timeValue); + $timeValue = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($timeValue); return (int) gmdate('G', $timeValue); } @@ -1388,7 +1388,7 @@ class DateTime } elseif ($timeValue < 0.0) { return Functions::NAN(); } - $timeValue = \PhpSpreadsheet\Shared\Date::excelToTimestamp($timeValue); + $timeValue = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($timeValue); return (int) gmdate('i', $timeValue); } @@ -1428,7 +1428,7 @@ class DateTime } elseif ($timeValue < 0.0) { return Functions::NAN(); } - $timeValue = \PhpSpreadsheet\Shared\Date::excelToTimestamp($timeValue); + $timeValue = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($timeValue); return (int) gmdate('s', $timeValue); } @@ -1471,9 +1471,9 @@ class DateTime switch (Functions::getReturnDateType()) { case Functions::RETURNDATE_EXCEL: - return (float) \PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject); + return (float) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject); case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject)); + return (integer) \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject)); case Functions::RETURNDATE_PHP_OBJECT: return $PHPDateObject; } @@ -1519,9 +1519,9 @@ class DateTime switch (Functions::getReturnDateType()) { case Functions::RETURNDATE_EXCEL: - return (float) \PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject); + return (float) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject); case Functions::RETURNDATE_PHP_NUMERIC: - return (integer) \PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject)); + return (integer) \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp(\PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($PHPDateObject)); case Functions::RETURNDATE_PHP_OBJECT: return $PHPDateObject; } diff --git a/src/PhpSpreadsheet/Calculation/Engineering.php b/src/PhpSpreadsheet/Calculation/Engineering.php index d893f1a1..d764aa1a 100644 --- a/src/PhpSpreadsheet/Calculation/Engineering.php +++ b/src/PhpSpreadsheet/Calculation/Engineering.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /* EULER */ define('EULER', 2.71828182845904523536); diff --git a/src/PhpSpreadsheet/Calculation/Exception.php b/src/PhpSpreadsheet/Calculation/Exception.php index 3b775bce..6ed595b2 100644 --- a/src/PhpSpreadsheet/Calculation/Exception.php +++ b/src/PhpSpreadsheet/Calculation/Exception.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Calculation; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Exception extends \PhpSpreadsheet\Exception +class Exception extends \PhpOffice\PhpSpreadsheet\Exception { /** * Error handler callback diff --git a/src/PhpSpreadsheet/Calculation/ExceptionHandler.php b/src/PhpSpreadsheet/Calculation/ExceptionHandler.php index cccdf91a..d888f425 100644 --- a/src/PhpSpreadsheet/Calculation/ExceptionHandler.php +++ b/src/PhpSpreadsheet/Calculation/ExceptionHandler.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -31,7 +31,7 @@ class ExceptionHandler */ public function __construct() { - set_error_handler(['\\PhpSpreadsheet\\Calculation\\Exception', 'errorHandlerCallback'], E_ALL); + set_error_handler(['\\PhpOffice\\PhpSpreadsheet\\Calculation\\Exception', 'errorHandlerCallback'], E_ALL); } /** diff --git a/src/PhpSpreadsheet/Calculation/Financial.php b/src/PhpSpreadsheet/Calculation/Financial.php index 37fcc2ad..c66d638b 100644 --- a/src/PhpSpreadsheet/Calculation/Financial.php +++ b/src/PhpSpreadsheet/Calculation/Financial.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /* FINANCIAL_MAX_ITERATIONS */ define('FINANCIAL_MAX_ITERATIONS', 128); @@ -62,10 +62,10 @@ class Financial { $months = 12 / $frequency; - $result = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($maturity); + $result = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($maturity); $eom = self::isLastDayOfMonth($result); - while ($settlement < \PhpSpreadsheet\Shared\Date::PHPToExcel($result)) { + while ($settlement < \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($result)) { $result->modify('-' . $months . ' months'); } if ($next) { @@ -76,7 +76,7 @@ class Financial $result->modify('-1 day'); } - return \PhpSpreadsheet\Shared\Date::PHPToExcel($result); + return \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($result); } private static function isValidFrequency($frequency) diff --git a/src/PhpSpreadsheet/Calculation/FormulaParser.php b/src/PhpSpreadsheet/Calculation/FormulaParser.php index c2a364f3..817ea71a 100644 --- a/src/PhpSpreadsheet/Calculation/FormulaParser.php +++ b/src/PhpSpreadsheet/Calculation/FormulaParser.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Calculation/FormulaToken.php b/src/PhpSpreadsheet/Calculation/FormulaToken.php index a62385c2..2ec6055e 100644 --- a/src/PhpSpreadsheet/Calculation/FormulaToken.php +++ b/src/PhpSpreadsheet/Calculation/FormulaToken.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Calculation/Functions.php b/src/PhpSpreadsheet/Calculation/Functions.php index 4f3ed583..7afc5f6d 100644 --- a/src/PhpSpreadsheet/Calculation/Functions.php +++ b/src/PhpSpreadsheet/Calculation/Functions.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /* MAX_VALUE */ define('MAX_VALUE', 1.2e308); @@ -284,7 +284,7 @@ class Functions } if (!in_array($condition{0}, ['>', '<', '='])) { if (!is_numeric($condition)) { - $condition = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($condition)); + $condition = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($condition)); } return '=' . $condition; @@ -294,7 +294,7 @@ class Functions if (!is_numeric($operand)) { $operand = str_replace('"', '""', $operand); - $operand = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($operand)); + $operand = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($operand)); } return $operator . $operand; diff --git a/src/PhpSpreadsheet/Calculation/Logical.php b/src/PhpSpreadsheet/Calculation/Logical.php index d99eefd1..bdf555a0 100644 --- a/src/PhpSpreadsheet/Calculation/Logical.php +++ b/src/PhpSpreadsheet/Calculation/Logical.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -94,9 +94,9 @@ class Logical $returnValue = $returnValue && ($arg != 0); } elseif (is_string($arg)) { $arg = strtoupper($arg); - if (($arg == 'TRUE') || ($arg == \PhpSpreadsheet\Calculation::getTRUE())) { + if (($arg == 'TRUE') || ($arg == \PhpOffice\PhpSpreadsheet\Calculation::getTRUE())) { $arg = true; - } elseif (($arg == 'FALSE') || ($arg == \PhpSpreadsheet\Calculation::getFALSE())) { + } elseif (($arg == 'FALSE') || ($arg == \PhpOffice\PhpSpreadsheet\Calculation::getFALSE())) { $arg = false; } else { return Functions::VALUE(); @@ -149,9 +149,9 @@ class Logical $returnValue = $returnValue || ($arg != 0); } elseif (is_string($arg)) { $arg = strtoupper($arg); - if (($arg == 'TRUE') || ($arg == \PhpSpreadsheet\Calculation::getTRUE())) { + if (($arg == 'TRUE') || ($arg == \PhpOffice\PhpSpreadsheet\Calculation::getTRUE())) { $arg = true; - } elseif (($arg == 'FALSE') || ($arg == \PhpSpreadsheet\Calculation::getFALSE())) { + } elseif (($arg == 'FALSE') || ($arg == \PhpOffice\PhpSpreadsheet\Calculation::getFALSE())) { $arg = false; } else { return Functions::VALUE(); @@ -192,9 +192,9 @@ class Logical $logical = Functions::flattenSingleValue($logical); if (is_string($logical)) { $logical = strtoupper($logical); - if (($logical == 'TRUE') || ($logical == \PhpSpreadsheet\Calculation::getTRUE())) { + if (($logical == 'TRUE') || ($logical == \PhpOffice\PhpSpreadsheet\Calculation::getTRUE())) { return false; - } elseif (($logical == 'FALSE') || ($logical == \PhpSpreadsheet\Calculation::getFALSE())) { + } elseif (($logical == 'FALSE') || ($logical == \PhpOffice\PhpSpreadsheet\Calculation::getFALSE())) { return true; } else { return Functions::VALUE(); diff --git a/src/PhpSpreadsheet/Calculation/LookupRef.php b/src/PhpSpreadsheet/Calculation/LookupRef.php index 2cc37f32..8491015a 100644 --- a/src/PhpSpreadsheet/Calculation/LookupRef.php +++ b/src/PhpSpreadsheet/Calculation/LookupRef.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -66,7 +66,7 @@ class LookupRef } if ((!is_bool($referenceStyle)) || $referenceStyle) { $rowRelative = $columnRelative = '$'; - $column = \PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); + $column = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); if (($relativity == 2) || ($relativity == 4)) { $columnRelative = ''; } @@ -111,7 +111,7 @@ class LookupRef foreach ($cellAddress as $columnKey => $value) { $columnKey = preg_replace('/[^a-z]/i', '', $columnKey); - return (integer) \PhpSpreadsheet\Cell::columnIndexFromString($columnKey); + return (integer) \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($columnKey); } } else { if (strpos($cellAddress, '!') !== false) { @@ -123,14 +123,14 @@ class LookupRef $endAddress = preg_replace('/[^a-z]/i', '', $endAddress); $returnValue = []; do { - $returnValue[] = (integer) \PhpSpreadsheet\Cell::columnIndexFromString($startAddress); + $returnValue[] = (integer) \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($startAddress); } while ($startAddress++ != $endAddress); return $returnValue; } else { $cellAddress = preg_replace('/[^a-z]/i', '', $cellAddress); - return (integer) \PhpSpreadsheet\Cell::columnIndexFromString($cellAddress); + return (integer) \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($cellAddress); } } } @@ -156,7 +156,7 @@ class LookupRef reset($cellAddress); $isMatrix = (is_numeric(key($cellAddress))); - list($columns, $rows) = \PhpSpreadsheet\Calculation::_getMatrixDimensions($cellAddress); + list($columns, $rows) = \PhpOffice\PhpSpreadsheet\Calculation::_getMatrixDimensions($cellAddress); if ($isMatrix) { return $rows; @@ -234,7 +234,7 @@ class LookupRef reset($cellAddress); $isMatrix = (is_numeric(key($cellAddress))); - list($columns, $rows) = \PhpSpreadsheet\Calculation::_getMatrixDimensions($cellAddress); + list($columns, $rows) = \PhpOffice\PhpSpreadsheet\Calculation::_getMatrixDimensions($cellAddress); if ($isMatrix) { return $columns; @@ -252,10 +252,10 @@ class LookupRef * @category Logical Functions * @param string $linkURL Value to check, is also the value returned when no error * @param string $displayName Value to return when testValue is an error condition - * @param \PhpSpreadsheet\Cell $pCell The cell to set the hyperlink in + * @param \PhpOffice\PhpSpreadsheet\Cell $pCell The cell to set the hyperlink in * @return mixed The value of $displayName (or $linkURL if $displayName was blank) */ - public static function HYPERLINK($linkURL = '', $displayName = null, \PhpSpreadsheet\Cell $pCell = null) + public static function HYPERLINK($linkURL = '', $displayName = null, \PhpOffice\PhpSpreadsheet\Cell $pCell = null) { $args = func_get_args(); $pCell = array_pop($args); @@ -289,12 +289,12 @@ class LookupRef * NOTE - INDIRECT() does not yet support the optional a1 parameter introduced in Excel 2010 * * @param cellAddress $cellAddress The cell address of the current cell (containing this formula) - * @param \PhpSpreadsheet\Cell $pCell The current cell (containing this formula) + * @param \PhpOffice\PhpSpreadsheet\Cell $pCell The current cell (containing this formula) * @return mixed The cells referenced by cellAddress * * @todo Support for the optional a1 parameter introduced in Excel 2010 */ - public static function INDIRECT($cellAddress = null, \PhpSpreadsheet\Cell $pCell = null) + public static function INDIRECT($cellAddress = null, \PhpOffice\PhpSpreadsheet\Cell $pCell = null) { $cellAddress = Functions::flattenSingleValue($cellAddress); if (is_null($cellAddress) || $cellAddress === '') { @@ -307,9 +307,9 @@ class LookupRef list($cellAddress1, $cellAddress2) = explode(':', $cellAddress); } - if ((!preg_match('/^' . \PhpSpreadsheet\Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellAddress1, $matches)) || - ((!is_null($cellAddress2)) && (!preg_match('/^' . \PhpSpreadsheet\Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellAddress2, $matches)))) { - if (!preg_match('/^' . \PhpSpreadsheet\Calculation::CALCULATION_REGEXP_NAMEDRANGE . '$/i', $cellAddress1, $matches)) { + if ((!preg_match('/^' . \PhpOffice\PhpSpreadsheet\Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellAddress1, $matches)) || + ((!is_null($cellAddress2)) && (!preg_match('/^' . \PhpOffice\PhpSpreadsheet\Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellAddress2, $matches)))) { + if (!preg_match('/^' . \PhpOffice\PhpSpreadsheet\Calculation::CALCULATION_REGEXP_NAMEDRANGE . '$/i', $cellAddress1, $matches)) { return Functions::REF(); } @@ -321,7 +321,7 @@ class LookupRef $pSheet = $pCell->getWorksheet(); } - return \PhpSpreadsheet\Calculation::getInstance()->extractNamedRange($cellAddress, $pSheet, false); + return \PhpOffice\PhpSpreadsheet\Calculation::getInstance()->extractNamedRange($cellAddress, $pSheet, false); } if (strpos($cellAddress, '!') !== false) { @@ -332,7 +332,7 @@ class LookupRef $pSheet = $pCell->getWorksheet(); } - return \PhpSpreadsheet\Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false); + return \PhpOffice\PhpSpreadsheet\Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false); } /** @@ -386,23 +386,23 @@ class LookupRef } else { $startCell = $endCell = $cellAddress; } - list($startCellColumn, $startCellRow) = \PhpSpreadsheet\Cell::coordinateFromString($startCell); - list($endCellColumn, $endCellRow) = \PhpSpreadsheet\Cell::coordinateFromString($endCell); + list($startCellColumn, $startCellRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($startCell); + list($endCellColumn, $endCellRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($endCell); $startCellRow += $rows; - $startCellColumn = \PhpSpreadsheet\Cell::columnIndexFromString($startCellColumn) - 1; + $startCellColumn = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($startCellColumn) - 1; $startCellColumn += $columns; if (($startCellRow <= 0) || ($startCellColumn < 0)) { return Functions::REF(); } - $endCellColumn = \PhpSpreadsheet\Cell::columnIndexFromString($endCellColumn) - 1; + $endCellColumn = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($endCellColumn) - 1; if (($width != null) && (!is_object($width))) { $endCellColumn = $startCellColumn + $width - 1; } else { $endCellColumn += $columns; } - $startCellColumn = \PhpSpreadsheet\Cell::stringFromColumnIndex($startCellColumn); + $startCellColumn = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($startCellColumn); if (($height != null) && (!is_object($height))) { $endCellRow = $startCellRow + $height - 1; @@ -413,7 +413,7 @@ class LookupRef if (($endCellRow <= 0) || ($endCellColumn < 0)) { return Functions::REF(); } - $endCellColumn = \PhpSpreadsheet\Cell::stringFromColumnIndex($endCellColumn); + $endCellColumn = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($endCellColumn); $cellAddress = $startCellColumn . $startCellRow; if (($startCellColumn != $endCellColumn) || ($startCellRow != $endCellRow)) { @@ -426,7 +426,7 @@ class LookupRef $pSheet = $pCell->getWorksheet(); } - return \PhpSpreadsheet\Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false); + return \PhpOffice\PhpSpreadsheet\Calculation::getInstance()->extractCellRange($cellAddress, $pSheet, false); } /** diff --git a/src/PhpSpreadsheet/Calculation/MathTrig.php b/src/PhpSpreadsheet/Calculation/MathTrig.php index 186df4a6..cb3c5f54 100644 --- a/src/PhpSpreadsheet/Calculation/MathTrig.php +++ b/src/PhpSpreadsheet/Calculation/MathTrig.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -544,10 +544,10 @@ class MathTrig } try { - $matrix = new \PhpSpreadsheet\Shared\JAMA\Matrix($matrixData); + $matrix = new \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix($matrixData); return $matrix->det(); - } catch (\PhpSpreadsheet\Exception $ex) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $ex) { return Functions::VALUE(); } } @@ -596,10 +596,10 @@ class MathTrig } try { - $matrix = new \PhpSpreadsheet\Shared\JAMA\Matrix($matrixData); + $matrix = new \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix($matrixData); return $matrix->inverse()->getArray(); - } catch (\PhpSpreadsheet\Exception $ex) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $ex) { return Functions::VALUE(); } } @@ -637,7 +637,7 @@ class MathTrig } ++$rowA; } - $matrixA = new \PhpSpreadsheet\Shared\JAMA\Matrix($matrixAData); + $matrixA = new \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix($matrixAData); $rowB = 0; foreach ($matrixData2 as $matrixRow) { if (!is_array($matrixRow)) { @@ -653,14 +653,14 @@ class MathTrig } ++$rowB; } - $matrixB = new \PhpSpreadsheet\Shared\JAMA\Matrix($matrixBData); + $matrixB = new \PhpOffice\PhpSpreadsheet\Shared\JAMA\Matrix($matrixBData); if ($columnA != $rowB) { return Functions::VALUE(); } return $matrixA->times($matrixB)->getArray(); - } catch (\PhpSpreadsheet\Exception $ex) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $ex) { return Functions::VALUE(); } } @@ -1183,11 +1183,11 @@ class MathTrig foreach ($aArgs as $key => $arg) { if (!is_numeric($arg)) { $arg = str_replace('"', '""', $arg); - $arg = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); + $arg = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); } $testCondition = '=' . $arg . $condition; - if (\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if (\PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { // Is it a value within our criteria $returnValue += $sumArgs[$key]; } @@ -1230,10 +1230,10 @@ class MathTrig // Loop through arguments foreach ($aArgs as $key => $arg) { if (!is_numeric($arg)) { - $arg = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); + $arg = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); } $testCondition = '=' . $arg . $condition; - if (\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if (\PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { // Is it a value within our criteria $returnValue += $sumArgs[$key]; } diff --git a/src/PhpSpreadsheet/Calculation/Statistical.php b/src/PhpSpreadsheet/Calculation/Statistical.php index 754644fe..06f1a118 100644 --- a/src/PhpSpreadsheet/Calculation/Statistical.php +++ b/src/PhpSpreadsheet/Calculation/Statistical.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /* LOG_GAMMA_X_MAX_VALUE */ define('LOG_GAMMA_X_MAX_VALUE', 2.55e305); @@ -856,10 +856,10 @@ class Statistical $aCount = 0; foreach ($aArgs as $key => $arg) { if (!is_numeric($arg)) { - $arg = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); + $arg = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); } $testCondition = '=' . $arg . $condition; - if (\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if (\PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { if ((is_null($returnValue)) || ($arg > $returnValue)) { $returnValue += $arg; ++$aCount; @@ -1156,7 +1156,7 @@ class Statistical return Functions::DIV0(); } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); return $bestFitLinear->getCorrelation(); } @@ -1271,10 +1271,10 @@ class Statistical // Loop through arguments foreach ($aArgs as $arg) { if (!is_numeric($arg)) { - $arg = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); + $arg = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); } $testCondition = '=' . $arg . $condition; - if (\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if (\PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { // Is it a value within our criteria ++$returnValue; } @@ -1306,7 +1306,7 @@ class Statistical return Functions::DIV0(); } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); return $bestFitLinear->getCovariance(); } @@ -1590,7 +1590,7 @@ class Statistical return Functions::DIV0(); } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); return $bestFitLinear->getValueOfYForX($xValue); } @@ -1760,7 +1760,7 @@ class Statistical $newValues = Functions::flattenArray($newValues); $const = (is_null($const)) ? true : (boolean) Functions::flattenSingleValue($const); - $bestFitExponential = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_EXPONENTIAL, $yValues, $xValues, $const); + $bestFitExponential = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_EXPONENTIAL, $yValues, $xValues, $const); if (empty($newValues)) { $newValues = $bestFitExponential->getXValues(); } @@ -1881,7 +1881,7 @@ class Statistical return Functions::DIV0(); } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); return $bestFitLinear->getIntersect(); } @@ -2001,7 +2001,7 @@ class Statistical return 0; } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues, $const); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues, $const); if ($stats) { return [ [ @@ -2065,7 +2065,7 @@ class Statistical return 1; } - $bestFitExponential = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_EXPONENTIAL, $yValues, $xValues, $const); + $bestFitExponential = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_EXPONENTIAL, $yValues, $xValues, $const); if ($stats) { return [ [ @@ -2250,10 +2250,10 @@ class Statistical // Loop through arguments foreach ($aArgs as $key => $arg) { if (!is_numeric($arg)) { - $arg = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); + $arg = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); } $testCondition = '=' . $arg . $condition; - if (\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if (\PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { if ((is_null($returnValue)) || ($arg > $returnValue)) { $returnValue = $arg; } @@ -2404,10 +2404,10 @@ class Statistical // Loop through arguments foreach ($aArgs as $key => $arg) { if (!is_numeric($arg)) { - $arg = \PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); + $arg = \PhpOffice\PhpSpreadsheet\Calculation::wrapResult(strtoupper($arg)); } $testCondition = '=' . $arg . $condition; - if (\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { + if (\PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($testCondition)) { if ((is_null($returnValue)) || ($arg < $returnValue)) { $returnValue = $arg; } @@ -2876,7 +2876,7 @@ class Statistical return Functions::DIV0(); } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); return $bestFitLinear->getGoodnessOfFit(); } @@ -2942,7 +2942,7 @@ class Statistical return Functions::DIV0(); } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); return $bestFitLinear->getSlope(); } @@ -3232,7 +3232,7 @@ class Statistical return Functions::DIV0(); } - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues); return $bestFitLinear->getStdevOfResiduals(); } @@ -3376,7 +3376,7 @@ class Statistical $newValues = Functions::flattenArray($newValues); $const = (is_null($const)) ? true : (boolean) Functions::flattenSingleValue($const); - $bestFitLinear = \PhpSpreadsheet\Shared\trend\trend::calculate(\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues, $const); + $bestFitLinear = \PhpOffice\PhpSpreadsheet\Shared\trend\trend::calculate(\PhpOffice\PhpSpreadsheet\Shared\trend\trend::TREND_LINEAR, $yValues, $xValues, $const); if (empty($newValues)) { $newValues = $bestFitLinear->getXValues(); } diff --git a/src/PhpSpreadsheet/Calculation/TextData.php b/src/PhpSpreadsheet/Calculation/TextData.php index 0b446fee..4d523f83 100644 --- a/src/PhpSpreadsheet/Calculation/TextData.php +++ b/src/PhpSpreadsheet/Calculation/TextData.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation; +namespace PhpOffice\PhpSpreadsheet\Calculation; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -82,7 +82,7 @@ class TextData $stringValue = Functions::flattenSingleValue($stringValue); if (is_bool($stringValue)) { - return ($stringValue) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + return ($stringValue) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } if (self::$invalidChars == null) { @@ -106,7 +106,7 @@ class TextData { $stringValue = Functions::flattenSingleValue($stringValue); if (is_bool($stringValue)) { - return ($stringValue) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + return ($stringValue) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } if (is_string($stringValue) || is_numeric($stringValue)) { @@ -132,7 +132,7 @@ class TextData if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) { $characters = (int) $characters; } else { - $characters = ($characters) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $characters = ($characters) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } } @@ -168,7 +168,7 @@ class TextData if (Functions::getCompatibilityMode() == Functions::COMPATIBILITY_OPENOFFICE) { $arg = (int) $arg; } else { - $arg = ($arg) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $arg = ($arg) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } } $returnValue .= $arg; @@ -211,7 +211,7 @@ class TextData $value = MathTrig::MROUND($value, $round); } - return \PhpSpreadsheet\Style\NumberFormat::toFormattedString($value, $mask); + return \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString($value, $mask); } /** @@ -230,11 +230,11 @@ class TextData if (!is_bool($needle)) { if (is_bool($haystack)) { - $haystack = ($haystack) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $haystack = ($haystack) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } - if (($offset > 0) && (\PhpSpreadsheet\Shared\StringHelper::countCharacters($haystack) > $offset)) { - if (\PhpSpreadsheet\Shared\StringHelper::countCharacters($needle) == 0) { + if (($offset > 0) && (\PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($haystack) > $offset)) { + if (\PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($needle) == 0) { return $offset; } if (function_exists('mb_strpos')) { @@ -267,11 +267,11 @@ class TextData if (!is_bool($needle)) { if (is_bool($haystack)) { - $haystack = ($haystack) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $haystack = ($haystack) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } - if (($offset > 0) && (\PhpSpreadsheet\Shared\StringHelper::countCharacters($haystack) > $offset)) { - if (\PhpSpreadsheet\Shared\StringHelper::countCharacters($needle) == 0) { + if (($offset > 0) && (\PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($haystack) > $offset)) { + if (\PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($needle) == 0) { return $offset; } if (function_exists('mb_stripos')) { @@ -336,7 +336,7 @@ class TextData } if (is_bool($value)) { - $value = ($value) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $value = ($value) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } if (function_exists('mb_substr')) { @@ -365,7 +365,7 @@ class TextData } if (is_bool($value)) { - $value = ($value) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $value = ($value) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } if (empty($chars)) { @@ -395,7 +395,7 @@ class TextData } if (is_bool($value)) { - $value = ($value) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $value = ($value) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } if ((function_exists('mb_substr')) && (function_exists('mb_strlen'))) { @@ -416,7 +416,7 @@ class TextData $value = Functions::flattenSingleValue($value); if (is_bool($value)) { - $value = ($value) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $value = ($value) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } if (function_exists('mb_strlen')) { @@ -439,10 +439,10 @@ class TextData $mixedCaseString = Functions::flattenSingleValue($mixedCaseString); if (is_bool($mixedCaseString)) { - $mixedCaseString = ($mixedCaseString) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $mixedCaseString = ($mixedCaseString) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } - return \PhpSpreadsheet\Shared\StringHelper::strToLower($mixedCaseString); + return \PhpOffice\PhpSpreadsheet\Shared\StringHelper::strToLower($mixedCaseString); } /** @@ -458,10 +458,10 @@ class TextData $mixedCaseString = Functions::flattenSingleValue($mixedCaseString); if (is_bool($mixedCaseString)) { - $mixedCaseString = ($mixedCaseString) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $mixedCaseString = ($mixedCaseString) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } - return \PhpSpreadsheet\Shared\StringHelper::strToUpper($mixedCaseString); + return \PhpOffice\PhpSpreadsheet\Shared\StringHelper::strToUpper($mixedCaseString); } /** @@ -477,10 +477,10 @@ class TextData $mixedCaseString = Functions::flattenSingleValue($mixedCaseString); if (is_bool($mixedCaseString)) { - $mixedCaseString = ($mixedCaseString) ? \PhpSpreadsheet\Calculation::getTRUE() : \PhpSpreadsheet\Calculation::getFALSE(); + $mixedCaseString = ($mixedCaseString) ? \PhpOffice\PhpSpreadsheet\Calculation::getTRUE() : \PhpOffice\PhpSpreadsheet\Calculation::getFALSE(); } - return \PhpSpreadsheet\Shared\StringHelper::strToTitle($mixedCaseString); + return \PhpOffice\PhpSpreadsheet\Shared\StringHelper::strToTitle($mixedCaseString); } /** @@ -581,11 +581,11 @@ class TextData $value = Functions::flattenSingleValue($value); $format = Functions::flattenSingleValue($format); - if ((is_string($value)) && (!is_numeric($value)) && \PhpSpreadsheet\Shared\Date::isDateTimeFormatCode($format)) { + if ((is_string($value)) && (!is_numeric($value)) && \PhpOffice\PhpSpreadsheet\Shared\Date::isDateTimeFormatCode($format)) { $value = DateTime::DATEVALUE($value); } - return (string) \PhpSpreadsheet\Style\NumberFormat::toFormattedString($value, $format); + return (string) \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString($value, $format); } /** @@ -600,9 +600,9 @@ class TextData if (!is_numeric($value)) { $numberValue = str_replace( - \PhpSpreadsheet\Shared\StringHelper::getThousandsSeparator(), + \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getThousandsSeparator(), '', - trim($value, " \t\n\r\0\x0B" . \PhpSpreadsheet\Shared\StringHelper::getCurrencyCode()) + trim($value, " \t\n\r\0\x0B" . \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getCurrencyCode()) ); if (is_numeric($numberValue)) { return (float) $numberValue; diff --git a/src/PhpSpreadsheet/Calculation/Token/Stack.php b/src/PhpSpreadsheet/Calculation/Token/Stack.php index 4385b64f..8120f40a 100644 --- a/src/PhpSpreadsheet/Calculation/Token/Stack.php +++ b/src/PhpSpreadsheet/Calculation/Token/Stack.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Calculation\Token; +namespace PhpOffice\PhpSpreadsheet\Calculation\Token; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -65,7 +65,7 @@ class Stack 'reference' => $reference, ]; if ($type == 'Function') { - $localeFunction = \PhpSpreadsheet\Calculation::localeFunc($value); + $localeFunction = \PhpOffice\PhpSpreadsheet\Calculation::localeFunc($value); if ($localeFunction != $value) { $this->stack[($this->count - 1)]['localeValue'] = $localeFunction; } diff --git a/src/PhpSpreadsheet/Cell.php b/src/PhpSpreadsheet/Cell.php index 8f5ff4db..291ddfa3 100644 --- a/src/PhpSpreadsheet/Cell.php +++ b/src/PhpSpreadsheet/Cell.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -955,7 +955,7 @@ class Cell public static function setValueBinder(Cell\IValueBinder $binder = null) { if ($binder === null) { - throw new Exception('A \\PhpSpreadsheet\\Cell\\IValueBinder is required for PhpSpreadsheet to function correctly.'); + throw new Exception('A \\PhpOffice\\PhpSpreadsheet\\Cell\\IValueBinder is required for PhpSpreadsheet to function correctly.'); } self::$valueBinder = $binder; diff --git a/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php b/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php index 6bdb2e22..262b1c77 100644 --- a/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php +++ b/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Cell; +namespace PhpOffice\PhpSpreadsheet\Cell; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,35 +29,35 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder /** * Bind value to a cell * - * @param \PhpSpreadsheet\Cell $cell Cell to bind value to + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to bind value to * @param mixed $value Value to bind in cell * @return bool */ - public function bindValue(\PhpSpreadsheet\Cell $cell, $value = null) + public function bindValue(\PhpOffice\PhpSpreadsheet\Cell $cell, $value = null) { // sanitize UTF-8 strings if (is_string($value)) { - $value = \PhpSpreadsheet\Shared\StringHelper::sanitizeUTF8($value); + $value = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::sanitizeUTF8($value); } // Find out data type $dataType = parent::dataTypeForValue($value); // Style logic - strings - if ($dataType === DataType::TYPE_STRING && !$value instanceof \PhpSpreadsheet\RichText) { + if ($dataType === DataType::TYPE_STRING && !$value instanceof \PhpOffice\PhpSpreadsheet\RichText) { // Test for booleans using locale-setting - if ($value == \PhpSpreadsheet\Calculation::getTRUE()) { + if ($value == \PhpOffice\PhpSpreadsheet\Calculation::getTRUE()) { $cell->setValueExplicit(true, DataType::TYPE_BOOL); return true; - } elseif ($value == \PhpSpreadsheet\Calculation::getFALSE()) { + } elseif ($value == \PhpOffice\PhpSpreadsheet\Calculation::getFALSE()) { $cell->setValueExplicit(false, DataType::TYPE_BOOL); return true; } // Check for number in scientific format - if (preg_match('/^' . \PhpSpreadsheet\Calculation::CALCULATION_REGEXP_NUMBER . '$/', $value)) { + if (preg_match('/^' . \PhpOffice\PhpSpreadsheet\Calculation::CALCULATION_REGEXP_NUMBER . '$/', $value)) { $cell->setValueExplicit((float) $value, DataType::TYPE_NUMERIC); return true; @@ -97,15 +97,15 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder $cell->setValueExplicit($value, DataType::TYPE_NUMERIC); // Set style $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00); + ->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00); return true; } // Check for currency - $currencyCode = \PhpSpreadsheet\Shared\StringHelper::getCurrencyCode(); - $decimalSeparator = \PhpSpreadsheet\Shared\StringHelper::getDecimalSeparator(); - $thousandsSeparator = \PhpSpreadsheet\Shared\StringHelper::getThousandsSeparator(); + $currencyCode = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getCurrencyCode(); + $decimalSeparator = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getDecimalSeparator(); + $thousandsSeparator = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getThousandsSeparator(); if (preg_match('/^' . preg_quote($currencyCode) . ' *(\d{1,3}(' . preg_quote($thousandsSeparator) . '\d{3})*|(\d+))(' . preg_quote($decimalSeparator) . '\d{2})?$/', $value)) { // Convert value to number $value = (float) trim(str_replace([$currencyCode, $thousandsSeparator, $decimalSeparator], ['', '', '.'], $value)); @@ -113,7 +113,7 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder // Set style $cell->getWorksheet()->getStyle($cell->getCoordinate()) ->getNumberFormat()->setFormatCode( - str_replace('$', $currencyCode, \PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE) + str_replace('$', $currencyCode, \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE) ); return true; @@ -123,7 +123,7 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder $cell->setValueExplicit($value, DataType::TYPE_NUMERIC); // Set style $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); + ->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE); return true; } @@ -136,7 +136,7 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder $cell->setValueExplicit($days, DataType::TYPE_NUMERIC); // Set style $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME3); + ->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME3); return true; } @@ -150,13 +150,13 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder $cell->setValueExplicit($days, DataType::TYPE_NUMERIC); // Set style $cell->getWorksheet()->getStyle($cell->getCoordinate()) - ->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4); + ->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4); return true; } // Check for datetime, e.g. '2008-12-31', '2008-12-31 15:59', '2008-12-31 15:59:10' - if (($d = \PhpSpreadsheet\Shared\Date::stringToExcel($value)) !== false) { + if (($d = \PhpOffice\PhpSpreadsheet\Shared\Date::stringToExcel($value)) !== false) { // Convert value to number $cell->setValueExplicit($d, DataType::TYPE_NUMERIC); // Determine style. Either there is a time part or not. Look for ':' @@ -173,7 +173,7 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder // Check for newline character "\n" if (strpos($value, "\n") !== false) { - $value = \PhpSpreadsheet\Shared\StringHelper::sanitizeUTF8($value); + $value = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::sanitizeUTF8($value); $cell->setValueExplicit($value, DataType::TYPE_STRING); // Set style $cell->getWorksheet()->getStyle($cell->getCoordinate()) diff --git a/src/PhpSpreadsheet/Cell/DataType.php b/src/PhpSpreadsheet/Cell/DataType.php index ab9dfb99..c9765c79 100644 --- a/src/PhpSpreadsheet/Cell/DataType.php +++ b/src/PhpSpreadsheet/Cell/DataType.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Cell; +namespace PhpOffice\PhpSpreadsheet\Cell; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -64,7 +64,7 @@ class DataType /** * DataType for value * - * @deprecated Replaced by \PhpSpreadsheet\Cell\IValueBinder infrastructure, will be removed in version 1.8.0 + * @deprecated Replaced by \PhpOffice\PhpSpreadsheet\Cell\IValueBinder infrastructure, will be removed in version 1.8.0 * @param mixed $pValue * @return string */ @@ -81,13 +81,13 @@ class DataType */ public static function checkString($pValue = null) { - if ($pValue instanceof \PhpSpreadsheet\RichText) { + if ($pValue instanceof \PhpOffice\PhpSpreadsheet\RichText) { // TODO: Sanitize Rich-Text string (max. character count is 32,767) return $pValue; } // string must never be longer than 32,767 characters, truncate if necessary - $pValue = \PhpSpreadsheet\Shared\StringHelper::substring($pValue, 0, 32767); + $pValue = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::substring($pValue, 0, 32767); // we require that newline is represented as "\n" in core, not as "\r\n" or "\r" $pValue = str_replace(["\r\n", "\r"], "\n", $pValue); diff --git a/src/PhpSpreadsheet/Cell/DataValidation.php b/src/PhpSpreadsheet/Cell/DataValidation.php index 417ad976..30ac1228 100644 --- a/src/PhpSpreadsheet/Cell/DataValidation.php +++ b/src/PhpSpreadsheet/Cell/DataValidation.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Cell; +namespace PhpOffice\PhpSpreadsheet\Cell; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Cell/DefaultValueBinder.php b/src/PhpSpreadsheet/Cell/DefaultValueBinder.php index 74d5c4d4..4d439b1c 100644 --- a/src/PhpSpreadsheet/Cell/DefaultValueBinder.php +++ b/src/PhpSpreadsheet/Cell/DefaultValueBinder.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Cell; +namespace PhpOffice\PhpSpreadsheet\Cell; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,20 +29,20 @@ class DefaultValueBinder implements IValueBinder /** * Bind value to a cell * - * @param \PhpSpreadsheet\Cell $cell Cell to bind value to + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to bind value to * @param mixed $value Value to bind in cell * @return bool */ - public function bindValue(\PhpSpreadsheet\Cell $cell, $value = null) + public function bindValue(\PhpOffice\PhpSpreadsheet\Cell $cell, $value = null) { // sanitize UTF-8 strings if (is_string($value)) { - $value = \PhpSpreadsheet\Shared\StringHelper::sanitizeUTF8($value); + $value = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::sanitizeUTF8($value); } elseif (is_object($value)) { // Handle any objects that might be injected if ($value instanceof \DateTime) { $value = $value->format('Y-m-d H:i:s'); - } elseif (!($value instanceof \PhpSpreadsheet\RichText)) { + } elseif (!($value instanceof \PhpOffice\PhpSpreadsheet\RichText)) { $value = (string) $value; } } @@ -67,7 +67,7 @@ class DefaultValueBinder implements IValueBinder return DataType::TYPE_NULL; } elseif ($pValue === '') { return DataType::TYPE_STRING; - } elseif ($pValue instanceof \PhpSpreadsheet\RichText) { + } elseif ($pValue instanceof \PhpOffice\PhpSpreadsheet\RichText) { return DataType::TYPE_INLINE; } elseif ($pValue{0} === '=' && strlen($pValue) > 1) { return DataType::TYPE_FORMULA; diff --git a/src/PhpSpreadsheet/Cell/Hyperlink.php b/src/PhpSpreadsheet/Cell/Hyperlink.php index e6cd58ae..fe111134 100644 --- a/src/PhpSpreadsheet/Cell/Hyperlink.php +++ b/src/PhpSpreadsheet/Cell/Hyperlink.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Cell; +namespace PhpOffice\PhpSpreadsheet\Cell; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Cell/IValueBinder.php b/src/PhpSpreadsheet/Cell/IValueBinder.php index 9e04b9b8..2ff260de 100644 --- a/src/PhpSpreadsheet/Cell/IValueBinder.php +++ b/src/PhpSpreadsheet/Cell/IValueBinder.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Cell; +namespace PhpOffice\PhpSpreadsheet\Cell; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,9 +29,9 @@ interface IValueBinder /** * Bind value to a cell * - * @param \PhpSpreadsheet\Cell $cell Cell to bind value to + * @param \PhpOffice\PhpSpreadsheet\Cell $cell Cell to bind value to * @param mixed $value Value to bind in cell * @return bool */ - public function bindValue(\PhpSpreadsheet\Cell $cell, $value = null); + public function bindValue(\PhpOffice\PhpSpreadsheet\Cell $cell, $value = null); } diff --git a/src/PhpSpreadsheet/Chart.php b/src/PhpSpreadsheet/Chart.php index f3594b66..0fe9fef2 100644 --- a/src/PhpSpreadsheet/Chart.php +++ b/src/PhpSpreadsheet/Chart.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -659,7 +659,7 @@ class Chart set_include_path(get_include_path() . PATH_SEPARATOR . $libraryPath); } - $rendererName = '\\PhpSpreadsheet\\Chart\\Renderer\\' . $libraryName; + $rendererName = '\\PhpOffice\\PhpSpreadsheet\\Chart\\Renderer\\' . $libraryName; $renderer = new $rendererName($this); if ($outputDestination == 'php://output') { diff --git a/src/PhpSpreadsheet/Chart/Axis.php b/src/PhpSpreadsheet/Chart/Axis.php index 3c59cb90..5c8d0a3a 100644 --- a/src/PhpSpreadsheet/Chart/Axis.php +++ b/src/PhpSpreadsheet/Chart/Axis.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Created by PhpStorm. diff --git a/src/PhpSpreadsheet/Chart/DataSeries.php b/src/PhpSpreadsheet/Chart/DataSeries.php index 3f335afc..57b29820 100644 --- a/src/PhpSpreadsheet/Chart/DataSeries.php +++ b/src/PhpSpreadsheet/Chart/DataSeries.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -367,7 +367,7 @@ class DataSeries return $this; } - public function refresh(\PhpSpreadsheet\Worksheet $worksheet) + public function refresh(\PhpOffice\PhpSpreadsheet\Worksheet $worksheet) { foreach ($this->plotValues as $plotValues) { if ($plotValues !== null) { diff --git a/src/PhpSpreadsheet/Chart/DataSeriesValues.php b/src/PhpSpreadsheet/Chart/DataSeriesValues.php index 1ab3140e..ba3cc269 100644 --- a/src/PhpSpreadsheet/Chart/DataSeriesValues.php +++ b/src/PhpSpreadsheet/Chart/DataSeriesValues.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -105,9 +105,9 @@ class DataSeriesValues * * @param string $dataType Datatype of this data series * Typical values are: - * \PhpSpreadsheet\Chart\DataSeriesValues::DATASERIES_TYPE_STRING + * \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues::DATASERIES_TYPE_STRING * Normally used for axis point values - * \PhpSpreadsheet\Chart\DataSeriesValues::DATASERIES_TYPE_NUMBER + * \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues::DATASERIES_TYPE_NUMBER * Normally used for chart data values * @throws Exception * @return DataSeriesValues @@ -272,7 +272,7 @@ class DataSeriesValues */ public function setDataValues($dataValues = [], $refreshDataSource = true) { - $this->dataValues = \PhpSpreadsheet\Calculation\Functions::flattenArray($dataValues); + $this->dataValues = \PhpOffice\PhpSpreadsheet\Calculation\Functions::flattenArray($dataValues); $this->pointCount = count($dataValues); if ($refreshDataSource) { @@ -287,11 +287,11 @@ class DataSeriesValues return $var !== null; } - public function refresh(\PhpSpreadsheet\Worksheet $worksheet, $flatten = true) + public function refresh(\PhpOffice\PhpSpreadsheet\Worksheet $worksheet, $flatten = true) { if ($this->dataSource !== null) { - $calcEngine = \PhpSpreadsheet\Calculation::getInstance($worksheet->getParent()); - $newDataValues = \PhpSpreadsheet\Calculation::unwrapResult( + $calcEngine = \PhpOffice\PhpSpreadsheet\Calculation::getInstance($worksheet->getParent()); + $newDataValues = \PhpOffice\PhpSpreadsheet\Calculation::unwrapResult( $calcEngine->_calculateFormulaValue( '=' . $this->dataSource, null, @@ -299,7 +299,7 @@ class DataSeriesValues ) ); if ($flatten) { - $this->dataValues = \PhpSpreadsheet\Calculation\Functions::flattenArray($newDataValues); + $this->dataValues = \PhpOffice\PhpSpreadsheet\Calculation\Functions::flattenArray($newDataValues); foreach ($this->dataValues as &$dataValue) { if ((!empty($dataValue)) && ($dataValue[0] == '#')) { $dataValue = 0.0; @@ -312,9 +312,9 @@ class DataSeriesValues list(, $cellRange) = $cellRange; } - $dimensions = \PhpSpreadsheet\Cell::rangeDimension(str_replace('$', '', $cellRange)); + $dimensions = \PhpOffice\PhpSpreadsheet\Cell::rangeDimension(str_replace('$', '', $cellRange)); if (($dimensions[0] == 1) || ($dimensions[1] == 1)) { - $this->dataValues = \PhpSpreadsheet\Calculation\Functions::flattenArray($newDataValues); + $this->dataValues = \PhpOffice\PhpSpreadsheet\Calculation\Functions::flattenArray($newDataValues); } else { $newArray = array_values(array_shift($newDataValues)); foreach ($newArray as $i => $newDataSet) { diff --git a/src/PhpSpreadsheet/Chart/Exception.php b/src/PhpSpreadsheet/Chart/Exception.php index 5dd2d11c..996e73f2 100644 --- a/src/PhpSpreadsheet/Chart/Exception.php +++ b/src/PhpSpreadsheet/Chart/Exception.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Chart; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Exception extends \PhpSpreadsheet\Exception +class Exception extends \PhpOffice\PhpSpreadsheet\Exception { /** * Error handler callback diff --git a/src/PhpSpreadsheet/Chart/GridLines.php b/src/PhpSpreadsheet/Chart/GridLines.php index 09992499..2cd5b203 100644 --- a/src/PhpSpreadsheet/Chart/GridLines.php +++ b/src/PhpSpreadsheet/Chart/GridLines.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Created by PhpStorm. diff --git a/src/PhpSpreadsheet/Chart/Layout.php b/src/PhpSpreadsheet/Chart/Layout.php index f55c554e..04994940 100644 --- a/src/PhpSpreadsheet/Chart/Layout.php +++ b/src/PhpSpreadsheet/Chart/Layout.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Chart/Legend.php b/src/PhpSpreadsheet/Chart/Legend.php index 9fb819ac..c833b2fd 100644 --- a/src/PhpSpreadsheet/Chart/Legend.php +++ b/src/PhpSpreadsheet/Chart/Legend.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Chart/PlotArea.php b/src/PhpSpreadsheet/Chart/PlotArea.php index 61b67392..cc24edd3 100644 --- a/src/PhpSpreadsheet/Chart/PlotArea.php +++ b/src/PhpSpreadsheet/Chart/PlotArea.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -117,7 +117,7 @@ class PlotArea return $this; } - public function refresh(\PhpSpreadsheet\Worksheet $worksheet) + public function refresh(\PhpOffice\PhpSpreadsheet\Worksheet $worksheet) { foreach ($this->plotSeries as $plotSeries) { $plotSeries->refresh($worksheet); diff --git a/src/PhpSpreadsheet/Chart/Properties.php b/src/PhpSpreadsheet/Chart/Properties.php index 0e2c3f3b..86d349f2 100644 --- a/src/PhpSpreadsheet/Chart/Properties.php +++ b/src/PhpSpreadsheet/Chart/Properties.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Created by PhpStorm. diff --git a/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php b/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php index b5032479..a3b54d1f 100644 --- a/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php +++ b/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Chart\Renderer; +namespace PhpOffice\PhpSpreadsheet\Chart\Renderer; -require_once \PhpSpreadsheet\Settings::getChartRendererPath() . '/jpgraph.php'; +require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . '/jpgraph.php'; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -107,7 +107,7 @@ class JpGraph } else { // Format labels according to any formatting code if (!is_null($datasetLabelFormatCode)) { - $datasetLabels[$i] = \PhpSpreadsheet\Style\NumberFormat::toFormattedString($datasetLabel, $datasetLabelFormatCode); + $datasetLabels[$i] = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString($datasetLabel, $datasetLabelFormatCode); } } ++$testCurrentIndex; @@ -544,7 +544,7 @@ class JpGraph private function renderAreaChart($groupCount, $dimensions = '2d') { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; $this->renderCartesianPlotArea(); @@ -555,7 +555,7 @@ class JpGraph private function renderLineChart($groupCount, $dimensions = '2d') { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; $this->renderCartesianPlotArea(); @@ -566,7 +566,7 @@ class JpGraph private function renderBarChart($groupCount, $dimensions = '2d') { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_bar.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_bar.php'; $this->renderCartesianPlotArea(); @@ -577,9 +577,9 @@ class JpGraph private function renderScatterChart($groupCount) { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_scatter.php'; - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_regstat.php'; - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_scatter.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_regstat.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; $this->renderCartesianPlotArea('linlin'); @@ -590,7 +590,7 @@ class JpGraph private function renderBubbleChart($groupCount) { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_scatter.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_scatter.php'; $this->renderCartesianPlotArea('linlin'); @@ -601,9 +601,9 @@ class JpGraph private function renderPieChart($groupCount, $dimensions = '2d', $doughnut = false, $multiplePlots = false) { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_pie.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_pie.php'; if ($dimensions == '3d') { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_pie3d.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_pie3d.php'; } $this->renderPiePlotArea($doughnut); @@ -677,7 +677,7 @@ class JpGraph private function renderRadarChart($groupCount) { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_radar.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_radar.php'; $this->renderRadarPlotArea(); @@ -688,7 +688,7 @@ class JpGraph private function renderStockChart($groupCount) { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_stock.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_stock.php'; $this->renderCartesianPlotArea('intint'); @@ -699,7 +699,7 @@ class JpGraph private function renderContourChart($groupCount, $dimensions) { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_contour.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_contour.php'; $this->renderCartesianPlotArea('intint'); @@ -710,11 +710,11 @@ class JpGraph private function renderCombinationChart($groupCount, $dimensions, $outputDestination) { - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_bar.php'; - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_scatter.php'; - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_regstat.php'; - require_once \PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_bar.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_scatter.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_regstat.php'; + require_once \PhpOffice\PhpSpreadsheet\Settings::getChartRendererPath() . 'jpgraph_line.php'; $this->renderCartesianPlotArea(); @@ -850,7 +850,7 @@ class JpGraph /** * Create a new jpgraph */ - public function __construct(\PhpSpreadsheet\Chart $chart) + public function __construct(\PhpOffice\PhpSpreadsheet\Chart $chart) { $this->graph = null; $this->chart = $chart; diff --git a/src/PhpSpreadsheet/Chart/Title.php b/src/PhpSpreadsheet/Chart/Title.php index dbf3a243..8dba8408 100644 --- a/src/PhpSpreadsheet/Chart/Title.php +++ b/src/PhpSpreadsheet/Chart/Title.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Chart; +namespace PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Comment.php b/src/PhpSpreadsheet/Comment.php index b7736e16..321f3817 100644 --- a/src/PhpSpreadsheet/Comment.php +++ b/src/PhpSpreadsheet/Comment.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Document/Properties.php b/src/PhpSpreadsheet/Document/Properties.php index c4d2c0aa..f7119609 100644 --- a/src/PhpSpreadsheet/Document/Properties.php +++ b/src/PhpSpreadsheet/Document/Properties.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Document; +namespace PhpOffice\PhpSpreadsheet\Document; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Document/Security.php b/src/PhpSpreadsheet/Document/Security.php index 32f33267..bce8dab7 100644 --- a/src/PhpSpreadsheet/Document/Security.php +++ b/src/PhpSpreadsheet/Document/Security.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Document; +namespace PhpOffice\PhpSpreadsheet\Document; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -169,7 +169,7 @@ class Security public function setRevisionsPassword($pValue = '', $pAlreadyHashed = false) { if (!$pAlreadyHashed) { - $pValue = \PhpSpreadsheet\Shared\PasswordHasher::hashPassword($pValue); + $pValue = \PhpOffice\PhpSpreadsheet\Shared\PasswordHasher::hashPassword($pValue); } $this->revisionsPassword = $pValue; @@ -196,7 +196,7 @@ class Security public function setWorkbookPassword($pValue = '', $pAlreadyHashed = false) { if (!$pAlreadyHashed) { - $pValue = \PhpSpreadsheet\Shared\PasswordHasher::hashPassword($pValue); + $pValue = \PhpOffice\PhpSpreadsheet\Shared\PasswordHasher::hashPassword($pValue); } $this->workbookPassword = $pValue; diff --git a/src/PhpSpreadsheet/Exception.php b/src/PhpSpreadsheet/Exception.php index aa460cfa..ad8d2486 100644 --- a/src/PhpSpreadsheet/Exception.php +++ b/src/PhpSpreadsheet/Exception.php @@ -1,10 +1,8 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** - * PhpSpreadsheet\Exception - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/HashTable.php b/src/PhpSpreadsheet/HashTable.php index fd73c157..6bc6feec 100644 --- a/src/PhpSpreadsheet/HashTable.php +++ b/src/PhpSpreadsheet/HashTable.php @@ -1,10 +1,8 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** - * PhpSpreadsheet\HashTable - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -43,7 +41,7 @@ class HashTable protected $keyMap = []; /** - * Create a new \PhpSpreadsheet\HashTable + * Create a new \PhpOffice\PhpSpreadsheet\HashTable * * @param IComparable[] $pSource Optional source array to create HashTable from * @throws Exception diff --git a/src/PhpSpreadsheet/Helper/HTML.php b/src/PhpSpreadsheet/Helper/HTML.php index ed7bcb96..1b76ee39 100644 --- a/src/PhpSpreadsheet/Helper/HTML.php +++ b/src/PhpSpreadsheet/Helper/HTML.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Helper; +namespace PhpOffice\PhpSpreadsheet\Helper; use DOMDocument; use DOMElement; @@ -625,7 +625,7 @@ class HTML // Discard excess white space $dom->preserveWhiteSpace = false; - $this->richTextObject = new \PhpSpreadsheet\RichText(); + $this->richTextObject = new \PhpOffice\PhpSpreadsheet\RichText(); $this->parseElements($dom); // Clean any further spurious whitespace @@ -663,7 +663,7 @@ class HTML $richtextRun->getFont()->setSize($this->size); } if ($this->color) { - $richtextRun->getFont()->setColor(new \PhpSpreadsheet\Style\Color('ff' . $this->color)); + $richtextRun->getFont()->setColor(new \PhpOffice\PhpSpreadsheet\Style\Color('ff' . $this->color)); } if ($this->bold) { $richtextRun->getFont()->setBold(true); @@ -672,7 +672,7 @@ class HTML $richtextRun->getFont()->setItalic(true); } if ($this->underline) { - $richtextRun->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); + $richtextRun->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); } if ($this->superscript) { $richtextRun->getFont()->setSuperScript(true); diff --git a/src/PhpSpreadsheet/Helper/Sample.php b/src/PhpSpreadsheet/Helper/Sample.php index 922937be..fc262f40 100644 --- a/src/PhpSpreadsheet/Helper/Sample.php +++ b/src/PhpSpreadsheet/Helper/Sample.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheet\Helper; +namespace PhpOffice\PhpSpreadsheet\Helper; -use PhpSpreadsheet\IOFactory; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\IOFactory; +use PhpOffice\PhpSpreadsheet\Spreadsheet; class Sample { @@ -153,11 +153,11 @@ class Sample /** * Log a line about the write operation - * @param \PhpSpreadsheet\Writer\IWriter $writer + * @param \PhpOffice\PhpSpreadsheet\Writer\IWriter $writer * @param string $path * @param float $callStartTime */ - public function logWrite(\PhpSpreadsheet\Writer\IWriter $writer, $path, $callStartTime) + public function logWrite(\PhpOffice\PhpSpreadsheet\Writer\IWriter $writer, $path, $callStartTime) { $callEndTime = microtime(true); $callTime = $callEndTime - $callStartTime; diff --git a/src/PhpSpreadsheet/IComparable.php b/src/PhpSpreadsheet/IComparable.php index 51f94f8c..83f84ca3 100644 --- a/src/PhpSpreadsheet/IComparable.php +++ b/src/PhpSpreadsheet/IComparable.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/IOFactory.php b/src/PhpSpreadsheet/IOFactory.php index 01fe6be7..804c06cc 100644 --- a/src/PhpSpreadsheet/IOFactory.php +++ b/src/PhpSpreadsheet/IOFactory.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -33,8 +33,8 @@ class IOFactory * @static */ private static $searchLocations = [ - ['type' => 'IWriter', 'path' => 'PhpSpreadsheet/Writer/{0}.php', 'class' => '\\PhpSpreadsheet\\Writer\\{0}'], - ['type' => 'IReader', 'path' => 'PhpSpreadsheet/Reader/{0}.php', 'class' => '\\PhpSpreadsheet\\Reader\\{0}'], + ['type' => 'IWriter', 'path' => 'PhpSpreadsheet/Writer/{0}.php', 'class' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\{0}'], + ['type' => 'IReader', 'path' => 'PhpSpreadsheet/Reader/{0}.php', 'class' => '\\PhpOffice\\PhpSpreadsheet\\Reader\\{0}'], ]; /** diff --git a/src/PhpSpreadsheet/NamedRange.php b/src/PhpSpreadsheet/NamedRange.php index 07aa7b3c..4ccb7b81 100644 --- a/src/PhpSpreadsheet/NamedRange.php +++ b/src/PhpSpreadsheet/NamedRange.php @@ -1,10 +1,8 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** - * PhpSpreadsheet\NamedRange - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or diff --git a/src/PhpSpreadsheet/Reader/BaseReader.php b/src/PhpSpreadsheet/Reader/BaseReader.php index 8afb069d..5e3362ac 100644 --- a/src/PhpSpreadsheet/Reader/BaseReader.php +++ b/src/PhpSpreadsheet/Reader/BaseReader.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Reader/CSV.php b/src/PhpSpreadsheet/Reader/CSV.php index 31c7dea5..c126fe8d 100644 --- a/src/PhpSpreadsheet/Reader/CSV.php +++ b/src/PhpSpreadsheet/Reader/CSV.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -197,7 +197,7 @@ class CSV extends BaseReader implements IReader $worksheetInfo[0]['lastColumnIndex'] = max($worksheetInfo[0]['lastColumnIndex'], count($rowData) - 1); } - $worksheetInfo[0]['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); + $worksheetInfo[0]['lastColumnLetter'] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1; // Close file @@ -211,12 +211,12 @@ class CSV extends BaseReader implements IReader * * @param string $pFilename * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ public function load($pFilename) { // Create new Spreadsheet - $spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Load into this instance return $this->loadIntoExisting($pFilename, $spreadsheet); @@ -274,7 +274,7 @@ class CSV extends BaseReader implements IReader // Convert encoding if necessary if ($this->inputEncoding !== 'UTF-8') { - $rowDatum = \PhpSpreadsheet\Shared\StringHelper::convertEncoding($rowDatum, 'UTF-8', $this->inputEncoding); + $rowDatum = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertEncoding($rowDatum, 'UTF-8', $this->inputEncoding); } // Set cell value diff --git a/src/PhpSpreadsheet/Reader/DefaultReadFilter.php b/src/PhpSpreadsheet/Reader/DefaultReadFilter.php index 1d208ee2..ab08b862 100644 --- a/src/PhpSpreadsheet/Reader/DefaultReadFilter.php +++ b/src/PhpSpreadsheet/Reader/DefaultReadFilter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Reader/Excel2003XML.php b/src/PhpSpreadsheet/Reader/Excel2003XML.php index e9c2fac1..b52c1069 100644 --- a/src/PhpSpreadsheet/Reader/Excel2003XML.php +++ b/src/PhpSpreadsheet/Reader/Excel2003XML.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -121,7 +121,7 @@ class Excel2003XML extends BaseReader implements IReader $xml = simplexml_load_string( $this->securityScan(file_get_contents($pFilename)), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespaces = $xml->getNamespaces(true); @@ -152,7 +152,7 @@ class Excel2003XML extends BaseReader implements IReader $xml = simplexml_load_string( $this->securityScan(file_get_contents($pFilename)), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespaces = $xml->getNamespaces(true); @@ -198,7 +198,7 @@ class Excel2003XML extends BaseReader implements IReader } } - $tmpInfo['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['lastColumnLetter'] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; $worksheetInfo[] = $tmpInfo; @@ -213,7 +213,7 @@ class Excel2003XML extends BaseReader implements IReader * * @param string $pFilename * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ public function load($pFilename) { @@ -277,35 +277,35 @@ class Excel2003XML extends BaseReader implements IReader * Loads from file into Spreadsheet instance * * @param string $pFilename - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ - public function loadIntoExisting($pFilename, \PhpSpreadsheet\Spreadsheet $spreadsheet) + public function loadIntoExisting($pFilename, \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { $fromFormats = ['\-', '\ ']; $toFormats = ['-', ' ']; $underlineStyles = [ - \PhpSpreadsheet\Style\Font::UNDERLINE_NONE, - \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE, - \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING, - \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE, - \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING, ]; $verticalAlignmentStyles = [ - \PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM, - \PhpSpreadsheet\Style\Alignment::VERTICAL_TOP, - \PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER, - \PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY, ]; $horizontalAlignmentStyles = [ - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY, ]; $timezoneObj = new \DateTimeZone('Europe/London'); @@ -323,7 +323,7 @@ class Excel2003XML extends BaseReader implements IReader $xml = simplexml_load_string( $this->securityScan(file_get_contents($pFilename)), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespaces = $xml->getNamespaces(true); @@ -373,26 +373,26 @@ class Excel2003XML extends BaseReader implements IReader foreach ($xml->CustomDocumentProperties[0] as $propertyName => $propertyValue) { $propertyAttributes = $propertyValue->attributes($namespaces['dt']); $propertyName = preg_replace_callback('/_x([0-9a-z]{4})_/', ['self', 'hex2str'], $propertyName); - $propertyType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_UNKNOWN; + $propertyType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_UNKNOWN; switch ((string) $propertyAttributes) { case 'string': - $propertyType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_STRING; + $propertyType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_STRING; $propertyValue = trim($propertyValue); break; case 'boolean': - $propertyType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN; + $propertyType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN; $propertyValue = (bool) $propertyValue; break; case 'integer': - $propertyType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_INTEGER; + $propertyType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_INTEGER; $propertyValue = intval($propertyValue); break; case 'float': - $propertyType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_FLOAT; + $propertyType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_FLOAT; $propertyValue = floatval($propertyValue); break; case 'dateTime.tz': - $propertyType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE; + $propertyType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE; $propertyValue = strtotime(trim($propertyValue)); break; } @@ -434,7 +434,7 @@ class Excel2003XML extends BaseReader implements IReader foreach ($borderAttributes as $borderStyleKey => $borderStyleValue) { switch ($borderStyleKey) { case 'LineStyle': - $thisBorder['style'] = \PhpSpreadsheet\Style\Border::BORDER_MEDIUM; + $thisBorder['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM; break; case 'Weight': break; @@ -538,7 +538,7 @@ class Excel2003XML extends BaseReader implements IReader foreach ($worksheet->Table->Column as $columnData) { $columnData_ss = $columnData->attributes($namespaces['ss']); if (isset($columnData_ss['Index'])) { - $columnID = \PhpSpreadsheet\Cell::stringFromColumnIndex($columnData_ss['Index'] - 1); + $columnID = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($columnData_ss['Index'] - 1); } if (isset($columnData_ss['Width'])) { $columnWidth = $columnData_ss['Width']; @@ -562,7 +562,7 @@ class Excel2003XML extends BaseReader implements IReader foreach ($rowData->Cell as $cell) { $cell_ss = $cell->attributes($namespaces['ss']); if (isset($cell_ss['Index'])) { - $columnID = \PhpSpreadsheet\Cell::stringFromColumnIndex($cell_ss['Index'] - 1); + $columnID = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($cell_ss['Index'] - 1); } $cellRange = $columnID . $rowID; @@ -576,7 +576,7 @@ class Excel2003XML extends BaseReader implements IReader $columnTo = $columnID; if (isset($cell_ss['MergeAcross'])) { $additionalMergedCells += (int) $cell_ss['MergeAcross']; - $columnTo = \PhpSpreadsheet\Cell::stringFromColumnIndex(\PhpSpreadsheet\Cell::columnIndexFromString($columnID) + $cell_ss['MergeAcross'] - 1); + $columnTo = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex(\PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($columnID) + $cell_ss['MergeAcross'] - 1); } $rowTo = $rowID; if (isset($cell_ss['MergeDown'])) { @@ -598,7 +598,7 @@ class Excel2003XML extends BaseReader implements IReader } if (isset($cell->Data)) { $cellValue = $cellData = $cell->Data; - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NULL; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL; $cellData_ss = $cellData->attributes($namespaces['ss']); if (isset($cellData_ss['Type'])) { $cellDataType = $cellData_ss['Type']; @@ -614,32 +614,32 @@ class Excel2003XML extends BaseReader implements IReader */ case 'String': $cellValue = self::convertStringEncoding($cellValue, $this->charSet); - $type = \PhpSpreadsheet\Cell\DataType::TYPE_STRING; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING; break; case 'Number': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; $cellValue = (float) $cellValue; if (floor($cellValue) == $cellValue) { $cellValue = (integer) $cellValue; } break; case 'Boolean': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_BOOL; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_BOOL; $cellValue = ($cellValue != 0); break; case 'DateTime': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; - $cellValue = \PhpSpreadsheet\Shared\Date::PHPToExcel(strtotime($cellValue)); + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $cellValue = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(strtotime($cellValue)); break; case 'Error': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_ERROR; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_ERROR; break; } } if ($hasCalculatedValue) { - $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; - $columnNumber = \PhpSpreadsheet\Cell::columnIndexFromString($columnID); + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; + $columnNumber = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($columnID); if (substr($cellDataFormula, 0, 3) == 'of:') { $cellDataFormula = substr($cellDataFormula, 3); $temp = explode('"', $cellDataFormula); @@ -683,7 +683,7 @@ class Excel2003XML extends BaseReader implements IReader if ($columnReference{0} == '[') { $columnReference = $columnNumber + trim($columnReference, '[]'); } - $A1CellReference = \PhpSpreadsheet\Cell::stringFromColumnIndex($columnReference - 1) . $rowReference; + $A1CellReference = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($columnReference - 1) . $rowReference; $value = substr_replace($value, $A1CellReference, $cellReference[0][1], strlen($cellReference[0][0])); } } @@ -751,7 +751,7 @@ class Excel2003XML extends BaseReader implements IReader protected static function convertStringEncoding($string, $charset) { if ($charset != 'UTF-8') { - return \PhpSpreadsheet\Shared\StringHelper::convertEncoding($string, 'UTF-8', $charset); + return \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertEncoding($string, 'UTF-8', $charset); } return $string; @@ -759,7 +759,7 @@ class Excel2003XML extends BaseReader implements IReader protected function parseRichText($is = '') { - $value = new \PhpSpreadsheet\RichText(); + $value = new \PhpOffice\PhpSpreadsheet\RichText(); $value->createText(self::convertStringEncoding($is, $this->charSet)); diff --git a/src/PhpSpreadsheet/Reader/Excel2007.php b/src/PhpSpreadsheet/Reader/Excel2007.php index 023a3148..a44c8b7f 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007.php +++ b/src/PhpSpreadsheet/Reader/Excel2007.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,7 +29,7 @@ class Excel2007 extends BaseReader implements IReader /** * ReferenceHelper instance * - * @var \PhpSpreadsheet\ReferenceHelper + * @var \PhpOffice\PhpSpreadsheet\ReferenceHelper */ private $referenceHelper = null; @@ -46,7 +46,7 @@ class Excel2007 extends BaseReader implements IReader public function __construct() { $this->readFilter = new DefaultReadFilter(); - $this->referenceHelper = \PhpSpreadsheet\ReferenceHelper::getInstance(); + $this->referenceHelper = \PhpOffice\PhpSpreadsheet\ReferenceHelper::getInstance(); } /** @@ -63,7 +63,7 @@ class Excel2007 extends BaseReader implements IReader throw new Exception('Could not open ' . $pFilename . ' for reading! File does not exist.'); } - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); // Check if zip class exists // if (!class_exists($zipClass, false)) { @@ -80,7 +80,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, '_rels/.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if ($rels !== false) { foreach ($rels->Relationship as $rel) { @@ -114,7 +114,7 @@ class Excel2007 extends BaseReader implements IReader $worksheetNames = []; - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $zip = new $zipClass(); $zip->open($pFilename); @@ -124,7 +124,7 @@ class Excel2007 extends BaseReader implements IReader $this->securityScan( $this->getFromZipArchive($zip, '_rels/.rels'), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ) ); //~ http://schemas.openxmlformats.org/package/2006/relationships"); foreach ($rels->Relationship as $rel) { @@ -134,7 +134,7 @@ class Excel2007 extends BaseReader implements IReader $this->securityScan( $this->getFromZipArchive($zip, "{$rel['Target']}"), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ) ); //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" @@ -167,7 +167,7 @@ class Excel2007 extends BaseReader implements IReader $worksheetInfo = []; - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $zip = new $zipClass(); $zip->open($pFilename); @@ -176,7 +176,7 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/package/2006/relationships" $this->securityScan($this->getFromZipArchive($zip, '_rels/.rels')), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); foreach ($rels->Relationship as $rel) { if ($rel['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument') { @@ -187,7 +187,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, "$dir/_rels/" . basename($rel['Target']) . '.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $relsWorkbook->registerXPathNamespace('rel', 'http://schemas.openxmlformats.org/package/2006/relationships'); @@ -204,7 +204,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, "{$rel['Target']}") ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if ($xmlWorkbook->sheets) { $dir = dirname($rel['Target']); @@ -222,10 +222,10 @@ class Excel2007 extends BaseReader implements IReader $xml = new \XMLReader(); $res = $xml->xml( $this->securityScanFile( - 'zip://' . \PhpSpreadsheet\Shared\File::realpath($pFilename) . '#' . "$dir/$fileWorksheet" + 'zip://' . \PhpOffice\PhpSpreadsheet\Shared\File::realpath($pFilename) . '#' . "$dir/$fileWorksheet" ), null, - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $xml->setParserProperty(2, true); @@ -244,7 +244,7 @@ class Excel2007 extends BaseReader implements IReader $xml->close(); $tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1; - $tmpInfo['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['lastColumnLetter'] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); $worksheetInfo[] = $tmpInfo; } @@ -294,11 +294,11 @@ class Excel2007 extends BaseReader implements IReader if (!isset($sharedFormulas[(string) $c->f['si']])) { $sharedFormulas[$instance] = ['master' => $r, 'formula' => $value]; } else { - $master = \PhpSpreadsheet\Cell::coordinateFromString($sharedFormulas[$instance]['master']); - $current = \PhpSpreadsheet\Cell::coordinateFromString($r); + $master = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($sharedFormulas[$instance]['master']); + $current = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($r); $difference = [0, 0]; - $difference[0] = \PhpSpreadsheet\Cell::columnIndexFromString($current[0]) - \PhpSpreadsheet\Cell::columnIndexFromString($master[0]); + $difference[0] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($current[0]) - \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($master[0]); $difference[1] = $current[1] - $master[1]; $value = $this->referenceHelper->updateFormulaReferences($sharedFormulas[$instance]['formula'], 'A1', $difference[0], $difference[1]); @@ -312,7 +312,7 @@ class Excel2007 extends BaseReader implements IReader if (strpos($fileName, '//') !== false) { $fileName = substr($fileName, strpos($fileName, '//') + 1); } - $fileName = \PhpSpreadsheet\Shared\File::realpath($fileName); + $fileName = \PhpOffice\PhpSpreadsheet\Shared\File::realpath($fileName); // Sadly, some 3rd party xlsx generators don't use consistent case for filenaming // so we need to load case-insensitively from the zip file @@ -345,14 +345,14 @@ class Excel2007 extends BaseReader implements IReader } // Initialisations - $excel = new \PhpSpreadsheet\Spreadsheet(); + $excel = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $excel->removeSheetByIndex(0); if (!$this->readDataOnly) { $excel->removeCellStyleXfByIndex(0); // remove the default style $excel->removeCellXfByIndex(0); // remove the default style } - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $zip = new $zipClass(); $zip->open($pFilename); @@ -362,7 +362,7 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/package/2006/relationships" $this->securityScan($this->getFromZipArchive($zip, 'xl/_rels/workbook.xml.rels')), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); foreach ($wbRels->Relationship as $rel) { switch ($rel['Type']) { @@ -373,7 +373,7 @@ class Excel2007 extends BaseReader implements IReader $xmlTheme = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, "xl/{$rel['Target']}")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if (is_object($xmlTheme)) { $xmlThemeName = $xmlTheme->attributes(); @@ -408,7 +408,7 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/package/2006/relationships" $this->securityScan($this->getFromZipArchive($zip, '_rels/.rels')), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); foreach ($rels->Relationship as $rel) { switch ($rel['Type']) { @@ -416,7 +416,7 @@ class Excel2007 extends BaseReader implements IReader $xmlCore = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if (is_object($xmlCore)) { $xmlCore->registerXPathNamespace('dc', 'http://purl.org/dc/elements/1.1/'); @@ -438,7 +438,7 @@ class Excel2007 extends BaseReader implements IReader $xmlCore = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if (is_object($xmlCore)) { $docProps = $excel->getProperties(); @@ -454,7 +454,7 @@ class Excel2007 extends BaseReader implements IReader $xmlCore = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if (is_object($xmlCore)) { $docProps = $excel->getProperties(); @@ -465,8 +465,8 @@ class Excel2007 extends BaseReader implements IReader $cellDataOfficeChildren = $xmlProperty->children('http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes'); $attributeType = $cellDataOfficeChildren->getName(); $attributeValue = (string) $cellDataOfficeChildren->{$attributeType}; - $attributeValue = \PhpSpreadsheet\Document\Properties::convertProperty($attributeValue, $attributeType); - $attributeType = \PhpSpreadsheet\Document\Properties::convertPropertyType($attributeType); + $attributeValue = \PhpOffice\PhpSpreadsheet\Document\Properties::convertProperty($attributeValue, $attributeType); + $attributeType = \PhpOffice\PhpSpreadsheet\Document\Properties::convertPropertyType($attributeType); $docProps->setCustomProperty($propertyName, $attributeValue, $attributeType); } } @@ -485,7 +485,7 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/package/2006/relationships" $this->securityScan($this->getFromZipArchive($zip, "$dir/_rels/" . basename($rel['Target']) . '.rels')), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $relsWorkbook->registerXPathNamespace('rel', 'http://schemas.openxmlformats.org/package/2006/relationships'); @@ -495,12 +495,12 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" $this->securityScan($this->getFromZipArchive($zip, "$dir/$xpath[Target]")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if (isset($xmlStrings) && isset($xmlStrings->si)) { foreach ($xmlStrings->si as $val) { if (isset($val->t)) { - $sharedStrings[] = \PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $val->t); + $sharedStrings[] = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $val->t); } elseif (isset($val->r)) { $sharedStrings[] = $this->parseRichText($val); } @@ -540,7 +540,7 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" $this->securityScan($this->getFromZipArchive($zip, "$dir/$xpath[Target]")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $numFmts = null; if ($xmlStyles && $xmlStyles->numFmts[0]) { @@ -551,7 +551,7 @@ class Excel2007 extends BaseReader implements IReader } if (!$this->readDataOnly && $xmlStyles) { foreach ($xmlStyles->cellXfs->xf as $xf) { - $numFmt = \PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL; + $numFmt = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL; if ($xf['numFmtId']) { if (isset($numFmts)) { @@ -566,8 +566,8 @@ class Excel2007 extends BaseReader implements IReader // But there's a lot of naughty homebrew xlsx writers that do use "reserved" id values that aren't actually used // So we make allowance for them rather than lose formatting masks if ((int) $xf['numFmtId'] < 164 && - \PhpSpreadsheet\Style\NumberFormat::builtInFormatCode((int) $xf['numFmtId']) !== '') { - $numFmt = \PhpSpreadsheet\Style\NumberFormat::builtInFormatCode((int) $xf['numFmtId']); + \PhpOffice\PhpSpreadsheet\Style\NumberFormat::builtInFormatCode((int) $xf['numFmtId']) !== '') { + $numFmt = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::builtInFormatCode((int) $xf['numFmtId']); } } $quotePrefix = false; @@ -587,19 +587,19 @@ class Excel2007 extends BaseReader implements IReader $styles[] = $style; // add style to cellXf collection - $objStyle = new \PhpSpreadsheet\Style(); + $objStyle = new \PhpOffice\PhpSpreadsheet\Style(); self::readStyle($objStyle, $style); $excel->addCellXf($objStyle); } foreach ($xmlStyles->cellStyleXfs->xf as $xf) { - $numFmt = \PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL; + $numFmt = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL; if ($numFmts && $xf['numFmtId']) { $tmpNumFmt = self::getArrayItem($numFmts->xpath("sml:numFmt[@numFmtId=$xf[numFmtId]]")); if (isset($tmpNumFmt['formatCode'])) { $numFmt = (string) $tmpNumFmt['formatCode']; } elseif ((int) $xf['numFmtId'] < 165) { - $numFmt = \PhpSpreadsheet\Style\NumberFormat::builtInFormatCode((int) $xf['numFmtId']); + $numFmt = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::builtInFormatCode((int) $xf['numFmtId']); } } @@ -615,7 +615,7 @@ class Excel2007 extends BaseReader implements IReader $cellStyles[] = $cellStyle; // add style to cellStyleXf collection - $objStyle = new \PhpSpreadsheet\Style(); + $objStyle = new \PhpOffice\PhpSpreadsheet\Style(); self::readStyle($objStyle, $cellStyle); $excel->addCellStyleXf($objStyle); } @@ -626,7 +626,7 @@ class Excel2007 extends BaseReader implements IReader // Conditional Styles if ($xmlStyles->dxfs) { foreach ($xmlStyles->dxfs->dxf as $dxf) { - $style = new \PhpSpreadsheet\Style(false, true); + $style = new \PhpOffice\PhpSpreadsheet\Style(false, true); self::readStyle($style, $dxf); $dxfs[] = $style; } @@ -637,7 +637,7 @@ class Excel2007 extends BaseReader implements IReader if (intval($cellStyle['builtinId']) == 0) { if (isset($cellStyles[intval($cellStyle['xfId'])])) { // Set default style - $style = new \PhpSpreadsheet\Style(); + $style = new \PhpOffice\PhpSpreadsheet\Style(); self::readStyle($style, $cellStyles[intval($cellStyle['xfId'])]); // normal style, currently not using it for anything @@ -651,15 +651,15 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" $this->securityScan($this->getFromZipArchive($zip, "{$rel['Target']}")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); // Set base date if ($xmlWorkbook->workbookPr) { - \PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpSpreadsheet\Shared\Date::CALENDAR_WINDOWS_1900); + \PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_WINDOWS_1900); if (isset($xmlWorkbook->workbookPr['date1904'])) { if (self::boolean((string) $xmlWorkbook->workbookPr['date1904'])) { - \PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904); + \PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904); } } } @@ -698,7 +698,7 @@ class Excel2007 extends BaseReader implements IReader //~ http://schemas.openxmlformats.org/spreadsheetml/2006/main" $this->securityScan($this->getFromZipArchive($zip, "$dir/$fileWorksheet")), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $sharedFormulas = []; @@ -807,18 +807,18 @@ class Excel2007 extends BaseReader implements IReader foreach ($xmlSheet->cols->col as $col) { for ($i = intval($col['min']) - 1; $i < intval($col['max']); ++$i) { if ($col['style'] && !$this->readDataOnly) { - $docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setXfIndex(intval($col['style'])); + $docSheet->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setXfIndex(intval($col['style'])); } if (self::boolean($col['hidden'])) { - $docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setVisible(false); + $docSheet->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setVisible(false); } if (self::boolean($col['collapsed'])) { - $docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setCollapsed(true); + $docSheet->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setCollapsed(true); } if ($col['outlineLevel'] > 0) { - $docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setOutlineLevel(intval($col['outlineLevel'])); + $docSheet->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setOutlineLevel(intval($col['outlineLevel'])); } - $docSheet->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setWidth(floatval($col['width'])); + $docSheet->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($i))->setWidth(floatval($col['width'])); if (intval($col['max']) == 16384) { break; @@ -868,7 +868,7 @@ class Excel2007 extends BaseReader implements IReader // Read cell? if ($this->getReadFilter() !== null) { - $coordinates = \PhpSpreadsheet\Cell::coordinateFromString($r); + $coordinates = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($r); if (!$this->getReadFilter()->readCell($coordinates[0], $coordinates[1], $docSheet->getTitle())) { continue; @@ -881,7 +881,7 @@ class Excel2007 extends BaseReader implements IReader if ((string) $c->v != '') { $value = $sharedStrings[intval($c->v)]; - if ($value instanceof \PhpSpreadsheet\RichText) { + if ($value instanceof \PhpOffice\PhpSpreadsheet\RichText) { $value = clone $value; } } else { @@ -938,7 +938,7 @@ class Excel2007 extends BaseReader implements IReader } // Rich text? - if ($value instanceof \PhpSpreadsheet\RichText && $this->readDataOnly) { + if ($value instanceof \PhpOffice\PhpSpreadsheet\RichText && $this->readDataOnly) { $value = $value->getPlainText(); } @@ -967,7 +967,7 @@ class Excel2007 extends BaseReader implements IReader if (!$this->readDataOnly && $xmlSheet && $xmlSheet->conditionalFormatting) { foreach ($xmlSheet->conditionalFormatting as $conditional) { foreach ($conditional->cfRule as $cfRule) { - if (((string) $cfRule['type'] == \PhpSpreadsheet\Style\Conditional::CONDITION_NONE || (string) $cfRule['type'] == \PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS || (string) $cfRule['type'] == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT || (string) $cfRule['type'] == \PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION) && isset($dxfs[intval($cfRule['dxfId'])])) { + if (((string) $cfRule['type'] == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_NONE || (string) $cfRule['type'] == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS || (string) $cfRule['type'] == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT || (string) $cfRule['type'] == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION) && isset($dxfs[intval($cfRule['dxfId'])])) { $conditionals[(string) $conditional['sqref']][intval($cfRule['priority'])] = $cfRule; } } @@ -977,7 +977,7 @@ class Excel2007 extends BaseReader implements IReader ksort($cfRules); $conditionalStyles = []; foreach ($cfRules as $cfRule) { - $objConditional = new \PhpSpreadsheet\Style\Conditional(); + $objConditional = new \PhpOffice\PhpSpreadsheet\Style\Conditional(); $objConditional->setConditionType((string) $cfRule['type']); $objConditional->setOperatorType((string) $cfRule['operator']); @@ -1031,17 +1031,17 @@ class Excel2007 extends BaseReader implements IReader $column = $autoFilter->getColumnByOffset((integer) $filterColumn['colId']); // Check for standard filters if ($filterColumn->filters) { - $column->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER); + $column->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER); $filters = $filterColumn->filters; if ((isset($filters['blank'])) && ($filters['blank'] == 1)) { // Operator is undefined, but always treated as EQUAL - $column->createRule()->setRule(null, '')->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_FILTER); + $column->createRule()->setRule(null, '')->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_FILTER); } // Standard filters are always an OR join, so no join rule needs to be set // Entries can be either filter elements foreach ($filters->filter as $filterRule) { // Operator is undefined, but always treated as EQUAL - $column->createRule()->setRule(null, (string) $filterRule['val'])->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_FILTER); + $column->createRule()->setRule(null, (string) $filterRule['val'])->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_FILTER); } // Or Date Group elements foreach ($filters->dateGroupItem as $dateGroupItem) { @@ -1058,29 +1058,29 @@ class Excel2007 extends BaseReader implements IReader ], (string) $dateGroupItem['dateTimeGrouping'] ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP); } } // Check for custom filters if ($filterColumn->customFilters) { - $column->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER); + $column->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_CUSTOMFILTER); $customFilters = $filterColumn->customFilters; // Custom filters can an AND or an OR join; // and there should only ever be one or two entries if ((isset($customFilters['and'])) && ($customFilters['and'] == 1)) { - $column->setJoin(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND); + $column->setJoin(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND); } foreach ($customFilters->customFilter as $filterRule) { $column->createRule()->setRule( (string) $filterRule['operator'], (string) $filterRule['val'] ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_CUSTOMFILTER); } } // Check for dynamic filters if ($filterColumn->dynamicFilter) { - $column->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER); + $column->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_DYNAMICFILTER); // We should only ever have one dynamic filter foreach ($filterColumn->dynamicFilter as $filterRule) { $column->createRule()->setRule( @@ -1089,7 +1089,7 @@ class Excel2007 extends BaseReader implements IReader (string) $filterRule['val'], (string) $filterRule['type'] ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER); if (isset($filterRule['val'])) { $column->setAttribute('val', (string) $filterRule['val']); } @@ -1100,21 +1100,21 @@ class Excel2007 extends BaseReader implements IReader } // Check for dynamic filters if ($filterColumn->top10) { - $column->setFilterType(\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER); + $column->setFilterType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_TOPTENFILTER); // We should only ever have one top10 filter foreach ($filterColumn->top10 as $filterRule) { $column->createRule()->setRule( (((isset($filterRule['percent'])) && ($filterRule['percent'] == 1)) - ? \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT - : \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE + ? \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT + : \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BY_VALUE ), (string) $filterRule['val'], (((isset($filterRule['top'])) && ($filterRule['top'] == 1)) - ? \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP - : \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM + ? \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP + : \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_BOTTOM ) ) - ->setRuleType(\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_TOPTENFILTER); + ->setRuleType(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_TOPTENFILTER); } } } @@ -1203,14 +1203,14 @@ class Excel2007 extends BaseReader implements IReader if ($xmlSheet && $xmlSheet->rowBreaks && $xmlSheet->rowBreaks->brk && !$this->readDataOnly) { foreach ($xmlSheet->rowBreaks->brk as $brk) { if ($brk['man']) { - $docSheet->setBreak("A$brk[id]", \PhpSpreadsheet\Worksheet::BREAK_ROW); + $docSheet->setBreak("A$brk[id]", \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_ROW); } } } if ($xmlSheet && $xmlSheet->colBreaks && $xmlSheet->colBreaks->brk && !$this->readDataOnly) { foreach ($xmlSheet->colBreaks->brk as $brk) { if ($brk['man']) { - $docSheet->setBreak(\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $brk['id']) . '1', \PhpSpreadsheet\Worksheet::BREAK_COLUMN); + $docSheet->setBreak(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $brk['id']) . '1', \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_COLUMN); } } } @@ -1224,7 +1224,7 @@ class Excel2007 extends BaseReader implements IReader $stRange = $docSheet->shrinkRangeToFit($range); // Extract all cell references in $range - foreach (\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($stRange) as $reference) { + foreach (\PhpOffice\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($stRange) as $reference) { // Create validation $docValidation = $docSheet->getCell($reference)->getDataValidation(); $docValidation->setType((string) $dataValidation['type']); @@ -1256,7 +1256,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); foreach ($relsWorksheet->Relationship as $ele) { if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink') { @@ -1271,7 +1271,7 @@ class Excel2007 extends BaseReader implements IReader // Link url $linkRel = $hyperlink->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'); - foreach (\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($hyperlink['ref']) as $cellReference) { + foreach (\PhpOffice\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($hyperlink['ref']) as $cellReference) { $cell = $docSheet->getCell($cellReference); if (isset($linkRel['id'])) { $hyperlinkUrl = $hyperlinks[(string) $linkRel['id']]; @@ -1304,7 +1304,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); foreach ($relsWorksheet->Relationship as $ele) { if ($ele['Type'] == 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments') { @@ -1319,11 +1319,11 @@ class Excel2007 extends BaseReader implements IReader // Loop through comments foreach ($comments as $relName => $relPath) { // Load comments file - $relPath = \PhpSpreadsheet\Shared\File::realpath(dirname("$dir/$fileWorksheet") . '/' . $relPath); + $relPath = \PhpOffice\PhpSpreadsheet\Shared\File::realpath(dirname("$dir/$fileWorksheet") . '/' . $relPath); $commentsFile = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, $relPath)), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); // Utility variables @@ -1346,11 +1346,11 @@ class Excel2007 extends BaseReader implements IReader // Loop through VML comments foreach ($vmlComments as $relName => $relPath) { // Load VML comments file - $relPath = \PhpSpreadsheet\Shared\File::realpath(dirname("$dir/$fileWorksheet") . '/' . $relPath); + $relPath = \PhpOffice\PhpSpreadsheet\Shared\File::realpath(dirname("$dir/$fileWorksheet") . '/' . $relPath); $vmlCommentsFile = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, $relPath)), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $vmlCommentsFile->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); @@ -1421,7 +1421,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $vmlRelationship = ''; @@ -1439,7 +1439,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, dirname($vmlRelationship) . '/_rels/' . basename($vmlRelationship) . '.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $drawings = []; foreach ($relsVML->Relationship as $ele) { @@ -1452,7 +1452,7 @@ class Excel2007 extends BaseReader implements IReader $vmlDrawing = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, $vmlRelationship)), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $vmlDrawing->registerXPathNamespace('v', 'urn:schemas-microsoft-com:vml'); @@ -1467,12 +1467,12 @@ class Excel2007 extends BaseReader implements IReader $imageData = $imageData->attributes('urn:schemas-microsoft-com:office:office'); $style = self::toCSSArray((string) $shape['style']); - $hfImages[(string) $shape['id']] = new \PhpSpreadsheet\Worksheet\HeaderFooterDrawing(); + $hfImages[(string) $shape['id']] = new \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing(); if (isset($imageData['title'])) { $hfImages[(string) $shape['id']]->setName((string) $imageData['title']); } - $hfImages[(string) $shape['id']]->setPath('zip://' . \PhpSpreadsheet\Shared_File::realpath($pFilename) . '#' . $drawings[(string) $imageData['relid']], false); + $hfImages[(string) $shape['id']]->setPath('zip://' . \PhpOffice\PhpSpreadsheet\Shared_File::realpath($pFilename) . '#' . $drawings[(string) $imageData['relid']], false); $hfImages[(string) $shape['id']]->setResizeProportional(false); $hfImages[(string) $shape['id']]->setWidth($style['width']); $hfImages[(string) $shape['id']]->setHeight($style['height']); @@ -1497,7 +1497,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, dirname("$dir/$fileWorksheet") . '/_rels/' . basename($fileWorksheet) . '.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $drawings = []; foreach ($relsWorksheet->Relationship as $ele) { @@ -1514,7 +1514,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, dirname($fileDrawing) . '/_rels/' . basename($fileDrawing) . '.rels') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $images = []; @@ -1535,7 +1535,7 @@ class Excel2007 extends BaseReader implements IReader $xmlDrawing = simplexml_load_string( $this->securityScan($this->getFromZipArchive($zip, $fileDrawing)), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() )->children('http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'); if ($xmlDrawing->oneCellAnchor) { @@ -1544,32 +1544,32 @@ class Excel2007 extends BaseReader implements IReader $blip = $oneCellAnchor->pic->blipFill->children('http://schemas.openxmlformats.org/drawingml/2006/main')->blip; $xfrm = $oneCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->xfrm; $outerShdw = $oneCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->effectLst->outerShdw; - $objDrawing = new \PhpSpreadsheet\Worksheet\Drawing(); + $objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); $objDrawing->setName((string) self::getArrayItem($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'name')); $objDrawing->setDescription((string) self::getArrayItem($oneCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'descr')); $objDrawing->setPath( - 'zip://' . \PhpSpreadsheet\Shared\File::realpath($pFilename) . '#' . + 'zip://' . \PhpOffice\PhpSpreadsheet\Shared\File::realpath($pFilename) . '#' . $images[(string) self::getArrayItem( $blip->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'), 'embed' )], false ); - $objDrawing->setCoordinates(\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1)); - $objDrawing->setOffsetX(\PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->colOff)); - $objDrawing->setOffsetY(\PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->rowOff)); + $objDrawing->setCoordinates(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1)); + $objDrawing->setOffsetX(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->colOff)); + $objDrawing->setOffsetY(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->rowOff)); $objDrawing->setResizeProportional(false); - $objDrawing->setWidth(\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cx'))); - $objDrawing->setHeight(\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cy'))); + $objDrawing->setWidth(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cx'))); + $objDrawing->setHeight(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cy'))); if ($xfrm) { - $objDrawing->setRotation(\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), 'rot'))); + $objDrawing->setRotation(\PhpOffice\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), 'rot'))); } if ($outerShdw) { $shadow = $objDrawing->getShadow(); $shadow->setVisible(true); - $shadow->setBlurRadius(\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'blurRad'))); - $shadow->setDistance(\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'dist'))); - $shadow->setDirection(\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), 'dir'))); + $shadow->setBlurRadius(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'blurRad'))); + $shadow->setDistance(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'dist'))); + $shadow->setDirection(\PhpOffice\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), 'dir'))); $shadow->setAlignment((string) self::getArrayItem($outerShdw->attributes(), 'algn')); $shadow->getColor()->setRGB(self::getArrayItem($outerShdw->srgbClr->attributes(), 'val')); $shadow->setAlpha(self::getArrayItem($outerShdw->srgbClr->alpha->attributes(), 'val') / 1000); @@ -1577,11 +1577,11 @@ class Excel2007 extends BaseReader implements IReader $objDrawing->setWorksheet($docSheet); } else { // ? Can charts be positioned with a oneCellAnchor ? - $coordinates = \PhpSpreadsheet\Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1); - $offsetX = \PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->colOff); - $offsetY = \PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->rowOff); - $width = \PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cx')); - $height = \PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cy')); + $coordinates = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $oneCellAnchor->from->col) . ($oneCellAnchor->from->row + 1); + $offsetX = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->colOff); + $offsetY = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($oneCellAnchor->from->rowOff); + $width = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cx')); + $height = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($oneCellAnchor->ext->attributes(), 'cy')); } } } @@ -1591,45 +1591,45 @@ class Excel2007 extends BaseReader implements IReader $blip = $twoCellAnchor->pic->blipFill->children('http://schemas.openxmlformats.org/drawingml/2006/main')->blip; $xfrm = $twoCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->xfrm; $outerShdw = $twoCellAnchor->pic->spPr->children('http://schemas.openxmlformats.org/drawingml/2006/main')->effectLst->outerShdw; - $objDrawing = new \PhpSpreadsheet\Worksheet\Drawing(); + $objDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); $objDrawing->setName((string) self::getArrayItem($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'name')); $objDrawing->setDescription((string) self::getArrayItem($twoCellAnchor->pic->nvPicPr->cNvPr->attributes(), 'descr')); $objDrawing->setPath( - 'zip://' . \PhpSpreadsheet\Shared\File::realpath($pFilename) . '#' . + 'zip://' . \PhpOffice\PhpSpreadsheet\Shared\File::realpath($pFilename) . '#' . $images[(string) self::getArrayItem( $blip->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'), 'embed' )], false ); - $objDrawing->setCoordinates(\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1)); - $objDrawing->setOffsetX(\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->colOff)); - $objDrawing->setOffsetY(\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->rowOff)); + $objDrawing->setCoordinates(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1)); + $objDrawing->setOffsetX(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->colOff)); + $objDrawing->setOffsetY(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->rowOff)); $objDrawing->setResizeProportional(false); if ($xfrm) { - $objDrawing->setWidth(\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), 'cx'))); - $objDrawing->setHeight(\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), 'cy'))); - $objDrawing->setRotation(\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), 'rot'))); + $objDrawing->setWidth(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), 'cx'))); + $objDrawing->setHeight(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels(self::getArrayItem($xfrm->ext->attributes(), 'cy'))); + $objDrawing->setRotation(\PhpOffice\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($xfrm->attributes(), 'rot'))); } if ($outerShdw) { $shadow = $objDrawing->getShadow(); $shadow->setVisible(true); - $shadow->setBlurRadius(\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'blurRad'))); - $shadow->setDistance(\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'dist'))); - $shadow->setDirection(\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), 'dir'))); + $shadow->setBlurRadius(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'blurRad'))); + $shadow->setDistance(\PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUTopixels(self::getArrayItem($outerShdw->attributes(), 'dist'))); + $shadow->setDirection(\PhpOffice\PhpSpreadsheet\Shared\Drawing::angleToDegrees(self::getArrayItem($outerShdw->attributes(), 'dir'))); $shadow->setAlignment((string) self::getArrayItem($outerShdw->attributes(), 'algn')); $shadow->getColor()->setRGB(self::getArrayItem($outerShdw->srgbClr->attributes(), 'val')); $shadow->setAlpha(self::getArrayItem($outerShdw->srgbClr->alpha->attributes(), 'val') / 1000); } $objDrawing->setWorksheet($docSheet); } elseif (($this->includeCharts) && ($twoCellAnchor->graphicFrame)) { - $fromCoordinate = \PhpSpreadsheet\Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1); - $fromOffsetX = \PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->colOff); - $fromOffsetY = \PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->rowOff); - $toCoordinate = \PhpSpreadsheet\Cell::stringFromColumnIndex((string) $twoCellAnchor->to->col) . ($twoCellAnchor->to->row + 1); - $toOffsetX = \PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->to->colOff); - $toOffsetY = \PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->to->rowOff); + $fromCoordinate = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $twoCellAnchor->from->col) . ($twoCellAnchor->from->row + 1); + $fromOffsetX = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->colOff); + $fromOffsetY = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->from->rowOff); + $toCoordinate = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex((string) $twoCellAnchor->to->col) . ($twoCellAnchor->to->row + 1); + $toOffsetX = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->to->colOff); + $toOffsetY = \PhpOffice\PhpSpreadsheet\Shared\Drawing::EMUToPixels($twoCellAnchor->to->rowOff); $graphic = $twoCellAnchor->graphicFrame->children('http://schemas.openxmlformats.org/drawingml/2006/main')->graphic; $chartRef = $graphic->graphicData->children('http://schemas.openxmlformats.org/drawingml/2006/chart')->chart; $thisChart = (string) $chartRef->attributes('http://schemas.openxmlformats.org/officeDocument/2006/relationships'); @@ -1760,7 +1760,7 @@ class Excel2007 extends BaseReader implements IReader if ($worksheet = $docSheet->getParent()->getSheetByName($range[0])) { $extractedRange = str_replace('$', '', $range[1]); $scope = $docSheet->getParent()->getSheet($mapSheetId[(integer) $definedName['localSheetId']]); - $excel->addNamedRange(new \PhpSpreadsheet\NamedRange((string) $definedName['name'], $worksheet, $extractedRange, true, $scope)); + $excel->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange((string) $definedName['name'], $worksheet, $extractedRange, true, $scope)); } } } @@ -1772,7 +1772,7 @@ class Excel2007 extends BaseReader implements IReader $extractedSheetName = ''; if (strpos((string) $definedName, '!') !== false) { // Extract sheet name - $extractedSheetName = \PhpSpreadsheet\Worksheet::extractSheetTitle((string) $definedName, true); + $extractedSheetName = \PhpOffice\PhpSpreadsheet\Worksheet::extractSheetTitle((string) $definedName, true); $extractedSheetName = $extractedSheetName[0]; // Locate sheet @@ -1784,7 +1784,7 @@ class Excel2007 extends BaseReader implements IReader } if ($locatedSheet !== null) { - $excel->addNamedRange(new \PhpSpreadsheet\NamedRange((string) $definedName['name'], $locatedSheet, $extractedRange, false)); + $excel->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange((string) $definedName['name'], $locatedSheet, $extractedRange, false)); } } } @@ -1815,7 +1815,7 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, '[Content_Types].xml') ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); foreach ($contentTypes->Override as $contentType) { switch ($contentType['ContentType']) { @@ -1827,9 +1827,9 @@ class Excel2007 extends BaseReader implements IReader $this->getFromZipArchive($zip, $chartEntryRef) ), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); - $objChart = \PhpSpreadsheet\Reader\Excel2007\Chart::readChart($chartElements, basename($chartEntryRef, '.xml')); + $objChart = \PhpOffice\PhpSpreadsheet\Reader\Excel2007\Chart::readChart($chartElements, basename($chartEntryRef, '.xml')); // if (isset($charts[$chartEntryRef])) { @@ -1856,13 +1856,13 @@ class Excel2007 extends BaseReader implements IReader if (isset($color['rgb'])) { return (string) $color['rgb']; } elseif (isset($color['indexed'])) { - return \PhpSpreadsheet\Style\Color::indexedColor($color['indexed'] - 7, $background)->getARGB(); + return \PhpOffice\PhpSpreadsheet\Style\Color::indexedColor($color['indexed'] - 7, $background)->getARGB(); } elseif (isset($color['theme'])) { if (self::$theme !== null) { $returnColour = self::$theme->getColourByIndex((int) $color['theme']); if (isset($color['tint'])) { $tintAdjust = (float) $color['tint']; - $returnColour = \PhpSpreadsheet\Style\Color::changeBrightness($returnColour, $tintAdjust); + $returnColour = \PhpOffice\PhpSpreadsheet\Style\Color::changeBrightness($returnColour, $tintAdjust); } return 'FF' . $returnColour; @@ -1877,7 +1877,7 @@ class Excel2007 extends BaseReader implements IReader } /** - * @param \PhpSpreadsheet\Style $docStyle + * @param \PhpOffice\PhpSpreadsheet\Style $docStyle * @param \stdClass $style */ private static function readStyle($docStyle, \stdClass $style) @@ -1900,7 +1900,7 @@ class Excel2007 extends BaseReader implements IReader $docStyle->getFont()->getColor()->setARGB(self::readColor($style->font->color)); if (isset($style->font->u) && !isset($style->font->u['val'])) { - $docStyle->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); + $docStyle->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); } elseif (isset($style->font->u) && isset($style->font->u['val'])) { $docStyle->getFont()->setUnderline((string) $style->font->u['val']); } @@ -1946,13 +1946,13 @@ class Excel2007 extends BaseReader implements IReader $diagonalUp = self::boolean((string) $style->border['diagonalUp']); $diagonalDown = self::boolean((string) $style->border['diagonalDown']); if (!$diagonalUp && !$diagonalDown) { - $docStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_NONE); + $docStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_NONE); } elseif ($diagonalUp && !$diagonalDown) { - $docStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_UP); + $docStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_UP); } elseif (!$diagonalUp && $diagonalDown) { - $docStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN); + $docStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN); } else { - $docStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH); + $docStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH); } self::readBorder($docStyle->getBorders()->getLeft(), $style->border->left); self::readBorder($docStyle->getBorders()->getRight(), $style->border->right); @@ -1984,17 +1984,17 @@ class Excel2007 extends BaseReader implements IReader if (isset($style->protection)) { if (isset($style->protection['locked'])) { if (self::boolean((string) $style->protection['locked'])) { - $docStyle->getProtection()->setLocked(\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED); + $docStyle->getProtection()->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED); } else { - $docStyle->getProtection()->setLocked(\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); + $docStyle->getProtection()->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); } } if (isset($style->protection['hidden'])) { if (self::boolean((string) $style->protection['hidden'])) { - $docStyle->getProtection()->setHidden(\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED); + $docStyle->getProtection()->setHidden(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED); } else { - $docStyle->getProtection()->setHidden(\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); + $docStyle->getProtection()->setHidden(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); } } } @@ -2017,17 +2017,17 @@ class Excel2007 extends BaseReader implements IReader private function parseRichText($is = null) { - $value = new \PhpSpreadsheet\RichText(); + $value = new \PhpOffice\PhpSpreadsheet\RichText(); if (isset($is->t)) { - $value->createText(\PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $is->t)); + $value->createText(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $is->t)); } else { if (is_object($is->r)) { foreach ($is->r as $run) { if (!isset($run->rPr)) { - $objText = $value->createText(\PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $run->t)); + $objText = $value->createText(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $run->t)); } else { - $objText = $value->createTextRun(\PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $run->t)); + $objText = $value->createTextRun(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterOOXML2PHP((string) $run->t)); if (isset($run->rPr->rFont['val'])) { $objText->getFont()->setName((string) $run->rPr->rFont['val']); @@ -2036,7 +2036,7 @@ class Excel2007 extends BaseReader implements IReader $objText->getFont()->setSize((string) $run->rPr->sz['val']); } if (isset($run->rPr->color)) { - $objText->getFont()->setColor(new \PhpSpreadsheet\Style\Color(self::readColor($run->rPr->color))); + $objText->getFont()->setColor(new \PhpOffice\PhpSpreadsheet\Style\Color(self::readColor($run->rPr->color))); } if ((isset($run->rPr->b['val']) && self::boolean((string) $run->rPr->b['val'])) || (isset($run->rPr->b) && !isset($run->rPr->b['val']))) { @@ -2056,7 +2056,7 @@ class Excel2007 extends BaseReader implements IReader } } if (isset($run->rPr->u) && !isset($run->rPr->u['val'])) { - $objText->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); + $objText->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); } elseif (isset($run->rPr->u) && isset($run->rPr->u['val'])) { $objText->getFont()->setUnderline((string) $run->rPr->u['val']); } @@ -2073,9 +2073,9 @@ class Excel2007 extends BaseReader implements IReader } /** - * @param \PhpSpreadsheet\Spreadsheet $excel + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $excel */ - private function readRibbon(\PhpSpreadsheet\Spreadsheet $excel, $customUITarget, $zip) + private function readRibbon(\PhpOffice\PhpSpreadsheet\Spreadsheet $excel, $customUITarget, $zip) { $baseDir = dirname($customUITarget); $nameCustomUI = basename($customUITarget); @@ -2091,7 +2091,7 @@ class Excel2007 extends BaseReader implements IReader $UIRels = simplexml_load_string( $this->securityScan($dataRels), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); if ($UIRels) { // we need to save id and target to avoid parsing customUI.xml and "guess" if it's a pseudo callback who load the image @@ -2141,15 +2141,15 @@ class Excel2007 extends BaseReader implements IReader } if (strpos($item[1], 'pt') !== false) { $item[1] = str_replace('pt', '', $item[1]); - $item[1] = \PhpSpreadsheet\Shared\Font::fontSizeToPixels($item[1]); + $item[1] = \PhpOffice\PhpSpreadsheet\Shared\Font::fontSizeToPixels($item[1]); } if (strpos($item[1], 'in') !== false) { $item[1] = str_replace('in', '', $item[1]); - $item[1] = \PhpSpreadsheet\Shared\Font::inchSizeToPixels($item[1]); + $item[1] = \PhpOffice\PhpSpreadsheet\Shared\Font::inchSizeToPixels($item[1]); } if (strpos($item[1], 'cm') !== false) { $item[1] = str_replace('cm', '', $item[1]); - $item[1] = \PhpSpreadsheet\Shared\Font::centimeterSizeToPixels($item[1]); + $item[1] = \PhpOffice\PhpSpreadsheet\Shared\Font::centimeterSizeToPixels($item[1]); } $style[$item[0]] = $item[1]; diff --git a/src/PhpSpreadsheet/Reader/Excel2007/Chart.php b/src/PhpSpreadsheet/Reader/Excel2007/Chart.php index 3f8a3f1f..7ebb73c2 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007/Chart.php +++ b/src/PhpSpreadsheet/Reader/Excel2007/Chart.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -54,7 +54,7 @@ class Chart if (isset($color['rgb'])) { return (string) $color['rgb']; } elseif (isset($color['indexed'])) { - return \PhpSpreadsheet\Style\Color::indexedColor($color['indexed'] - 7, $background)->getARGB(); + return \PhpOffice\PhpSpreadsheet\Style\Color::indexedColor($color['indexed'] - 7, $background)->getARGB(); } } @@ -162,9 +162,9 @@ class Chart } } if ($plotAreaLayout == null) { - $plotAreaLayout = new \PhpSpreadsheet\Chart\Layout(); + $plotAreaLayout = new \PhpOffice\PhpSpreadsheet\Chart\Layout(); } - $plotArea = new \PhpSpreadsheet\Chart\PlotArea($plotAreaLayout, $plotSeries); + $plotArea = new \PhpOffice\PhpSpreadsheet\Chart\PlotArea($plotAreaLayout, $plotSeries); self::setChartAttributes($plotAreaLayout, $plotAttributes); break; case 'plotVisOnly': @@ -193,13 +193,13 @@ class Chart break; } } - $legend = new \PhpSpreadsheet\Chart\Legend($legendPos, $legendLayout, $legendOverlay); + $legend = new \PhpOffice\PhpSpreadsheet\Chart\Legend($legendPos, $legendLayout, $legendOverlay); break; } } } } - $chart = new \PhpSpreadsheet\Chart($chartName, $title, $legend, $plotArea, $plotVisOnly, $dispBlanksAs, $XaxisLabel, $YaxisLabel); + $chart = new \PhpOffice\PhpSpreadsheet\Chart($chartName, $title, $legend, $plotArea, $plotVisOnly, $dispBlanksAs, $XaxisLabel, $YaxisLabel); return $chart; } @@ -226,7 +226,7 @@ class Chart } } - return new \PhpSpreadsheet\Chart\Title($caption, $titleLayout); + return new \PhpOffice\PhpSpreadsheet\Chart\Title($caption, $titleLayout); } private static function chartLayoutDetails($chartDetail, $namespacesChartMeta) @@ -243,7 +243,7 @@ class Chart $layout[$detailKey] = self::getAttribute($detail, 'val', 'string'); } - return new \PhpSpreadsheet\Chart\Layout($layout); + return new \PhpOffice\PhpSpreadsheet\Chart\Layout($layout); } private static function chartDataSeries($chartDetail, $namespacesChartMeta, $plotType) @@ -295,7 +295,7 @@ class Chart } } - return new \PhpSpreadsheet\Chart\DataSeries($plotType, $multiSeriesType, $plotOrder, $seriesLabel, $seriesCategory, $seriesValues, $smoothLine); + return new \PhpOffice\PhpSpreadsheet\Chart\DataSeries($plotType, $multiSeriesType, $plotOrder, $seriesLabel, $seriesCategory, $seriesValues, $smoothLine); } private static function chartDataSeriesValueSet($seriesDetail, $namespacesChartMeta, $marker = null, $smoothLine = false) @@ -304,24 +304,24 @@ class Chart $seriesSource = (string) $seriesDetail->strRef->f; $seriesData = self::chartDataSeriesValues($seriesDetail->strRef->strCache->children($namespacesChartMeta['c']), 's'); - return new \PhpSpreadsheet\Chart\DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); + return new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); } elseif (isset($seriesDetail->numRef)) { $seriesSource = (string) $seriesDetail->numRef->f; $seriesData = self::chartDataSeriesValues($seriesDetail->numRef->numCache->children($namespacesChartMeta['c'])); - return new \PhpSpreadsheet\Chart\DataSeriesValues('Number', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); + return new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('Number', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); } elseif (isset($seriesDetail->multiLvlStrRef)) { $seriesSource = (string) $seriesDetail->multiLvlStrRef->f; $seriesData = self::chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlStrRef->multiLvlStrCache->children($namespacesChartMeta['c']), 's'); $seriesData['pointCount'] = count($seriesData['dataValues']); - return new \PhpSpreadsheet\Chart\DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); + return new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); } elseif (isset($seriesDetail->multiLvlNumRef)) { $seriesSource = (string) $seriesDetail->multiLvlNumRef->f; $seriesData = self::chartDataSeriesValuesMultiLevel($seriesDetail->multiLvlNumRef->multiLvlNumCache->children($namespacesChartMeta['c']), 's'); $seriesData['pointCount'] = count($seriesData['dataValues']); - return new \PhpSpreadsheet\Chart\DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); + return new \PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues('String', $seriesSource, $seriesData['formatCode'], $seriesData['pointCount'], $seriesData['dataValues'], $marker, $smoothLine); } return null; @@ -395,7 +395,7 @@ class Chart private static function parseRichText($titleDetailPart = null) { - $value = new \PhpSpreadsheet\RichText(); + $value = new \PhpOffice\PhpSpreadsheet\RichText(); foreach ($titleDetailPart as $titleDetailElementKey => $titleDetailElement) { if (isset($titleDetailElement->t)) { @@ -413,7 +413,7 @@ class Chart $fontColor = (self::getAttribute($titleDetailElement->rPr, 'color', 'string')); if (!is_null($fontColor)) { - $objText->getFont()->setColor(new \PhpSpreadsheet\Style\Color(self::readColor($fontColor))); + $objText->getFont()->setColor(new \PhpOffice\PhpSpreadsheet\Style\Color(self::readColor($fontColor))); } $bold = self::getAttribute($titleDetailElement->rPr, 'b', 'boolean'); @@ -438,11 +438,11 @@ class Chart $underscore = (self::getAttribute($titleDetailElement->rPr, 'u', 'string')); if (!is_null($underscore)) { if ($underscore == 'sng') { - $objText->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); + $objText->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); } elseif ($underscore == 'dbl') { - $objText->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE); + $objText->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE); } else { - $objText->getFont()->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_NONE); + $objText->getFont()->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE); } } @@ -491,9 +491,9 @@ class Chart } /** - * @param \PhpSpreadsheet\Chart\Layout $plotArea + * @param \PhpOffice\PhpSpreadsheet\Chart\Layout $plotArea */ - private static function setChartAttributes(\PhpSpreadsheet\Chart\Layout $plotArea, $plotAttributes) + private static function setChartAttributes(\PhpOffice\PhpSpreadsheet\Chart\Layout $plotArea, $plotAttributes) { foreach ($plotAttributes as $plotAttributeKey => $plotAttributeValue) { switch ($plotAttributeKey) { diff --git a/src/PhpSpreadsheet/Reader/Excel2007/Theme.php b/src/PhpSpreadsheet/Reader/Excel2007/Theme.php index 6d0e0e84..4594790f 100644 --- a/src/PhpSpreadsheet/Reader/Excel2007/Theme.php +++ b/src/PhpSpreadsheet/Reader/Excel2007/Theme.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Reader/Excel5.php b/src/PhpSpreadsheet/Reader/Excel5.php index e5722894..5a0f4f3b 100644 --- a/src/PhpSpreadsheet/Reader/Excel5.php +++ b/src/PhpSpreadsheet/Reader/Excel5.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -192,7 +192,7 @@ class Excel5 extends BaseReader implements IReader /** * Workbook to be returned by the reader. * - * @var \PhpSpreadsheet\Spreadsheet + * @var \PhpOffice\PhpSpreadsheet\Spreadsheet */ private $spreadsheet; @@ -425,13 +425,13 @@ class Excel5 extends BaseReader implements IReader try { // Use ParseXL for the hard work. - $ole = new \PhpSpreadsheet\Shared\OLERead(); + $ole = new \PhpOffice\PhpSpreadsheet\Shared\OLERead(); // get excel data $ole->read($pFilename); return true; - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { return false; } } @@ -589,7 +589,7 @@ class Excel5 extends BaseReader implements IReader } } - $tmpInfo['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['lastColumnLetter'] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); $tmpInfo['totalColumns'] = $tmpInfo['lastColumnIndex'] + 1; $worksheetInfo[] = $tmpInfo; @@ -603,7 +603,7 @@ class Excel5 extends BaseReader implements IReader * * @param string $pFilename * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ public function load($pFilename) { @@ -611,7 +611,7 @@ class Excel5 extends BaseReader implements IReader $this->loadOLE($pFilename); // Initialisations - $this->spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + $this->spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); $this->spreadsheet->removeSheetByIndex(0); // remove 1st sheet if (!$this->readDataOnly) { $this->spreadsheet->removeCellStyleXfByIndex(0); // remove the default style @@ -763,7 +763,7 @@ class Excel5 extends BaseReader implements IReader // treat MSODRAWINGGROUP records, workbook-level Escher if (!$this->readDataOnly && $this->drawingGroupData) { - $escherWorkbook = new \PhpSpreadsheet\Shared\Escher(); + $escherWorkbook = new \PhpOffice\PhpSpreadsheet\Shared\Escher(); $reader = new Excel5\Escher($escherWorkbook); $escherWorkbook = $reader->load($this->drawingGroupData); } @@ -981,7 +981,7 @@ class Excel5 extends BaseReader implements IReader // treat MSODRAWING records, sheet-level Escher if (!$this->readDataOnly && $this->drawingData) { - $escherWorksheet = new \PhpSpreadsheet\Shared\Escher(); + $escherWorksheet = new \PhpOffice\PhpSpreadsheet\Shared\Escher(); $reader = new Excel5\Escher($escherWorksheet); $escherWorksheet = $reader->load($this->drawingData); @@ -1001,20 +1001,20 @@ class Excel5 extends BaseReader implements IReader } // calculate the width and height of the shape - list($startColumn, $startRow) = \PhpSpreadsheet\Cell::coordinateFromString($spContainer->getStartCoordinates()); - list($endColumn, $endRow) = \PhpSpreadsheet\Cell::coordinateFromString($spContainer->getEndCoordinates()); + list($startColumn, $startRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($spContainer->getStartCoordinates()); + list($endColumn, $endRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($spContainer->getEndCoordinates()); $startOffsetX = $spContainer->getStartOffsetX(); $startOffsetY = $spContainer->getStartOffsetY(); $endOffsetX = $spContainer->getEndOffsetX(); $endOffsetY = $spContainer->getEndOffsetY(); - $width = \PhpSpreadsheet\Shared\Excel5::getDistanceX($this->phpSheet, $startColumn, $startOffsetX, $endColumn, $endOffsetX); - $height = \PhpSpreadsheet\Shared\Excel5::getDistanceY($this->phpSheet, $startRow, $startOffsetY, $endRow, $endOffsetY); + $width = \PhpOffice\PhpSpreadsheet\Shared\Excel5::getDistanceX($this->phpSheet, $startColumn, $startOffsetX, $endColumn, $endOffsetX); + $height = \PhpOffice\PhpSpreadsheet\Shared\Excel5::getDistanceY($this->phpSheet, $startRow, $startOffsetY, $endRow, $endOffsetY); // calculate offsetX and offsetY of the shape - $offsetX = $startOffsetX * \PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, $startColumn) / 1024; - $offsetY = $startOffsetY * \PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $startRow) / 256; + $offsetX = $startOffsetX * \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, $startColumn) / 1024; + $offsetY = $startOffsetY * \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $startRow) / 256; switch ($obj['otObjType']) { case 0x19: @@ -1039,7 +1039,7 @@ class Excel5 extends BaseReader implements IReader // need check because some blip types are not supported by Escher reader such as EMF if ($blip = $BSE->getBlip()) { $ih = imagecreatefromstring($blip->getData()); - $drawing = new \PhpSpreadsheet\Worksheet\MemoryDrawing(); + $drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing(); $drawing->setImageResource($ih); // width, height, offsetX, offsetY @@ -1050,13 +1050,13 @@ class Excel5 extends BaseReader implements IReader $drawing->setOffsetY($offsetY); switch ($blipType) { - case \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG: - $drawing->setRenderingFunction(\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG); - $drawing->setMimeType(\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_JPEG); + case \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG: + $drawing->setRenderingFunction(\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG); + $drawing->setMimeType(\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_JPEG); break; - case \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG: - $drawing->setRenderingFunction(\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_PNG); - $drawing->setMimeType(\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_PNG); + case \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG: + $drawing->setRenderingFunction(\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_PNG); + $drawing->setMimeType(\PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::MIMETYPE_PNG); break; } @@ -1074,10 +1074,10 @@ class Excel5 extends BaseReader implements IReader // treat SHAREDFMLA records if ($this->version == self::XLS_BIFF8) { foreach ($this->sharedFormulaParts as $cell => $baseCell) { - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($cell); + list($column, $row) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cell); if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($column, $row, $this->phpSheet->getTitle())) { $formula = $this->getFormulaFromStructure($this->sharedFormulas[$baseCell], $cell); - $this->phpSheet->getCell($cell)->setValueExplicit('=' . $formula, \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA); + $this->phpSheet->getCell($cell)->setValueExplicit('=' . $formula, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA); } } } @@ -1149,8 +1149,8 @@ class Excel5 extends BaseReader implements IReader $coordinateStrings = explode(':', $extractedRange); if (count($coordinateStrings) == 2) { - list($firstColumn, $firstRow) = \PhpSpreadsheet\Cell::coordinateFromString($coordinateStrings[0]); - list($lastColumn, $lastRow) = \PhpSpreadsheet\Cell::coordinateFromString($coordinateStrings[1]); + list($firstColumn, $firstRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($coordinateStrings[0]); + list($lastColumn, $lastRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($coordinateStrings[1]); if ($firstColumn == 'A' and $lastColumn == 'IV') { // then we have repeating rows @@ -1179,7 +1179,7 @@ class Excel5 extends BaseReader implements IReader $scope = ($definedName['scope'] == 0) ? null : $this->spreadsheet->getSheetByName($this->sheets[$definedName['scope'] - 1]['name']); - $this->spreadsheet->addNamedRange(new \PhpSpreadsheet\NamedRange((string) $definedName['name'], $docSheet, $extractedRange, $localOnly, $scope)); + $this->spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange((string) $definedName['name'], $docSheet, $extractedRange, $localOnly, $scope)); } } else { // Named Value @@ -1256,7 +1256,7 @@ class Excel5 extends BaseReader implements IReader private function loadOLE($pFilename) { // OLE reader - $ole = new \PhpSpreadsheet\Shared\OLERead(); + $ole = new \PhpOffice\PhpSpreadsheet\Shared\OLERead(); // get excel data, $ole->read($pFilename); // Get workbook data: workbook stream + sheet streams @@ -1327,12 +1327,12 @@ class Excel5 extends BaseReader implements IReader case 0x1E: // null-terminated string prepended by dword string length $byteLength = self::getInt4d($this->summaryInformation, $secOffset + 4 + $offset); $value = substr($this->summaryInformation, $secOffset + 8 + $offset, $byteLength); - $value = \PhpSpreadsheet\Shared\StringHelper::convertEncoding($value, 'UTF-8', $codePage); + $value = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertEncoding($value, 'UTF-8', $codePage); $value = rtrim($value); break; case 0x40: // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) // PHP-time - $value = \PhpSpreadsheet\Shared\OLE::OLE2LocalDate(substr($this->summaryInformation, $secOffset + 4 + $offset, 8)); + $value = \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE2LocalDate(substr($this->summaryInformation, $secOffset + 4 + $offset, 8)); break; case 0x47: // Clipboard format // not needed yet, fix later if necessary @@ -1341,7 +1341,7 @@ class Excel5 extends BaseReader implements IReader switch ($id) { case 0x01: // Code Page - $codePage = \PhpSpreadsheet\Shared\CodePage::numberToName($value); + $codePage = \PhpOffice\PhpSpreadsheet\Shared\CodePage::numberToName($value); break; case 0x02: // Title $this->spreadsheet->getProperties()->setTitle($value); @@ -1465,12 +1465,12 @@ class Excel5 extends BaseReader implements IReader case 0x1E: // null-terminated string prepended by dword string length $byteLength = self::getInt4d($this->documentSummaryInformation, $secOffset + 4 + $offset); $value = substr($this->documentSummaryInformation, $secOffset + 8 + $offset, $byteLength); - $value = \PhpSpreadsheet\Shared\StringHelper::convertEncoding($value, 'UTF-8', $codePage); + $value = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertEncoding($value, 'UTF-8', $codePage); $value = rtrim($value); break; case 0x40: // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) // PHP-Time - $value = \PhpSpreadsheet\Shared\OLE::OLE2LocalDate(substr($this->documentSummaryInformation, $secOffset + 4 + $offset, 8)); + $value = \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE2LocalDate(substr($this->documentSummaryInformation, $secOffset + 4 + $offset, 8)); break; case 0x47: // Clipboard format // not needed yet, fix later if necessary @@ -1479,7 +1479,7 @@ class Excel5 extends BaseReader implements IReader switch ($id) { case 0x01: // Code Page - $codePage = \PhpSpreadsheet\Shared\CodePage::numberToName($value); + $codePage = \PhpOffice\PhpSpreadsheet\Shared\CodePage::numberToName($value); break; case 0x02: // Category $this->spreadsheet->getProperties()->setCategory($value); @@ -1841,7 +1841,7 @@ class Excel5 extends BaseReader implements IReader // offset: 0; size: 2; code page identifier $codepage = self::getInt2d($recordData, 0); - $this->codepage = \PhpSpreadsheet\Shared\CodePage::numberToName($codepage); + $this->codepage = \PhpOffice\PhpSpreadsheet\Shared\CodePage::numberToName($codepage); } /** @@ -1865,9 +1865,9 @@ class Excel5 extends BaseReader implements IReader $this->pos += 4 + $length; // offset: 0; size: 2; 0 = base 1900, 1 = base 1904 - \PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpSpreadsheet\Shared\Date::CALENDAR_WINDOWS_1900); + \PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_WINDOWS_1900); if (ord($recordData{0}) == 1) { - \PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904); + \PhpOffice\PhpSpreadsheet\Shared\Date::setExcelCalendar(\PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904); } } @@ -1883,7 +1883,7 @@ class Excel5 extends BaseReader implements IReader $this->pos += 4 + $length; if (!$this->readDataOnly) { - $objFont = new \PhpSpreadsheet\Style\Font(); + $objFont = new \PhpOffice\PhpSpreadsheet\Style\Font(); // offset: 0; size: 2; height of the font (in twips = 1/20 of a point) $size = self::getInt2d($recordData, 0); @@ -1933,16 +1933,16 @@ class Excel5 extends BaseReader implements IReader case 0x00: break; // no underline case 0x01: - $objFont->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); + $objFont->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE); break; case 0x02: - $objFont->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE); + $objFont->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE); break; case 0x21: - $objFont->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING); + $objFont->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING); break; case 0x22: - $objFont->setUnderline(\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING); + $objFont->setUnderline(\PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING); break; } @@ -2020,7 +2020,7 @@ class Excel5 extends BaseReader implements IReader // move stream pointer to next record $this->pos += 4 + $length; - $objStyle = new \PhpSpreadsheet\Style(); + $objStyle = new \PhpOffice\PhpSpreadsheet\Style(); if (!$this->readDataOnly) { // offset: 0; size: 2; Index to FONT record @@ -2038,7 +2038,7 @@ class Excel5 extends BaseReader implements IReader if (isset($this->formats[$numberFormatIndex])) { // then we have user-defined format code $numberformat = ['code' => $this->formats[$numberFormatIndex]]; - } elseif (($code = \PhpSpreadsheet\Style\NumberFormat::builtInFormatCode($numberFormatIndex)) !== '') { + } elseif (($code = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::builtInFormatCode($numberFormatIndex)) !== '') { // then we have built-in format code $numberformat = ['code' => $code]; } else { @@ -2052,11 +2052,11 @@ class Excel5 extends BaseReader implements IReader $xfTypeProt = self::getInt2d($recordData, 4); // bit 0; mask 0x01; 1 = cell is locked $isLocked = (0x01 & $xfTypeProt) >> 0; - $objStyle->getProtection()->setLocked($isLocked ? \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT : \PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); + $objStyle->getProtection()->setLocked($isLocked ? \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT : \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); // bit 1; mask 0x02; 1 = Formula is hidden $isHidden = (0x02 & $xfTypeProt) >> 1; - $objStyle->getProtection()->setHidden($isHidden ? \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED : \PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); + $objStyle->getProtection()->setHidden($isHidden ? \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED : \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED); // bit 2; mask 0x04; 0 = Cell XF, 1 = Cell Style XF $isCellStyleXf = (0x04 & $xfTypeProt) >> 2; @@ -2066,25 +2066,25 @@ class Excel5 extends BaseReader implements IReader $horAlign = (0x07 & ord($recordData{6})) >> 0; switch ($horAlign) { case 0: - $objStyle->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL); + $objStyle->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL); break; case 1: - $objStyle->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT); + $objStyle->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT); break; case 2: - $objStyle->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER); + $objStyle->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER); break; case 3: - $objStyle->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); + $objStyle->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT); break; case 4: - $objStyle->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_FILL); + $objStyle->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_FILL); break; case 5: - $objStyle->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY); + $objStyle->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY); break; case 6: - $objStyle->getAlignment()->setHorizontal(\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS); + $objStyle->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS); break; } // bit 3, mask 0x08; wrap text @@ -2101,16 +2101,16 @@ class Excel5 extends BaseReader implements IReader $vertAlign = (0x70 & ord($recordData{6})) >> 4; switch ($vertAlign) { case 0: - $objStyle->getAlignment()->setVertical(\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP); + $objStyle->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP); break; case 1: - $objStyle->getAlignment()->setVertical(\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); + $objStyle->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); break; case 2: - $objStyle->getAlignment()->setVertical(\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM); + $objStyle->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM); break; case 3: - $objStyle->getAlignment()->setVertical(\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY); + $objStyle->getAlignment()->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY); break; } @@ -2175,13 +2175,13 @@ class Excel5 extends BaseReader implements IReader $diagonalUp = (0x80000000 & self::getInt4d($recordData, 10)) >> 31 ? true : false; if ($diagonalUp == false && $diagonalDown == false) { - $objStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_NONE); + $objStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_NONE); } elseif ($diagonalUp == true && $diagonalDown == false) { - $objStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_UP); + $objStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_UP); } elseif ($diagonalUp == false && $diagonalDown == true) { - $objStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN); + $objStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN); } elseif ($diagonalUp == true && $diagonalDown == true) { - $objStyle->getBorders()->setDiagonalDirection(\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH); + $objStyle->getBorders()->setDiagonalDirection(\PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH); } // offset: 14; size: 4; @@ -2546,16 +2546,16 @@ class Excel5 extends BaseReader implements IReader // offset: 4; size: 1; sheet state switch (ord($recordData{4})) { case 0x00: - $sheetState = \PhpSpreadsheet\Worksheet::SHEETSTATE_VISIBLE; + $sheetState = \PhpOffice\PhpSpreadsheet\Worksheet::SHEETSTATE_VISIBLE; break; case 0x01: - $sheetState = \PhpSpreadsheet\Worksheet::SHEETSTATE_HIDDEN; + $sheetState = \PhpOffice\PhpSpreadsheet\Worksheet::SHEETSTATE_HIDDEN; break; case 0x02: - $sheetState = \PhpSpreadsheet\Worksheet::SHEETSTATE_VERYHIDDEN; + $sheetState = \PhpOffice\PhpSpreadsheet\Worksheet::SHEETSTATE_VERYHIDDEN; break; default: - $sheetState = \PhpSpreadsheet\Worksheet::SHEETSTATE_VISIBLE; + $sheetState = \PhpOffice\PhpSpreadsheet\Worksheet::SHEETSTATE_VISIBLE; break; } @@ -2752,7 +2752,7 @@ class Excel5 extends BaseReader implements IReader try { $formula = $this->getFormulaFromStructure($formulaStructure); - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { $formula = ''; } @@ -3048,7 +3048,7 @@ class Excel5 extends BaseReader implements IReader $cl = self::getInt2d($recordData, 2 + 6 * $i + 4); // not sure why two column indexes are necessary? - $this->phpSheet->setBreakByColumnAndRow($cf, $r, \PhpSpreadsheet\Worksheet::BREAK_ROW); + $this->phpSheet->setBreakByColumnAndRow($cf, $r, \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_ROW); } } } @@ -3075,7 +3075,7 @@ class Excel5 extends BaseReader implements IReader $rl = self::getInt2d($recordData, 2 + 6 * $i + 4); // not sure why two row indexes are necessary? - $this->phpSheet->setBreakByColumnAndRow($c, $rf, \PhpSpreadsheet\Worksheet::BREAK_COLUMN); + $this->phpSheet->setBreakByColumnAndRow($c, $rf, \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_COLUMN); } } } @@ -3276,10 +3276,10 @@ class Excel5 extends BaseReader implements IReader $this->phpSheet->getPageSetup()->setPaperSize($paperSize); switch ($isPortrait) { case 0: - $this->phpSheet->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); + $this->phpSheet->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE); break; case 1: - $this->phpSheet->getPageSetup()->setOrientation(\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); + $this->phpSheet->getPageSetup()->setOrientation(\PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT); break; } @@ -3546,7 +3546,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: 2; index to column $column = self::getInt2d($recordData, 2); - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($column); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column); // Read cell? if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { @@ -3564,7 +3564,7 @@ class Excel5 extends BaseReader implements IReader } // add cell - $cell->setValueExplicit($numValue, \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC); + $cell->setValueExplicit($numValue, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC); } } @@ -3590,7 +3590,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: 2; index to column $column = self::getInt2d($recordData, 2); - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($column); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column); $emptyCell = true; // Read cell? @@ -3604,18 +3604,18 @@ class Excel5 extends BaseReader implements IReader // add cell if (($fmtRuns = $this->sst[$index]['fmtRuns']) && !$this->readDataOnly) { // then we should treat as rich text - $richText = new \PhpSpreadsheet\RichText(); + $richText = new \PhpOffice\PhpSpreadsheet\RichText(); $charPos = 0; $sstCount = count($this->sst[$index]['fmtRuns']); for ($i = 0; $i <= $sstCount; ++$i) { if (isset($fmtRuns[$i])) { - $text = \PhpSpreadsheet\Shared\StringHelper::substring($this->sst[$index]['value'], $charPos, $fmtRuns[$i]['charPos'] - $charPos); + $text = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::substring($this->sst[$index]['value'], $charPos, $fmtRuns[$i]['charPos'] - $charPos); $charPos = $fmtRuns[$i]['charPos']; } else { - $text = \PhpSpreadsheet\Shared\StringHelper::substring($this->sst[$index]['value'], $charPos, \PhpSpreadsheet\Shared\StringHelper::countCharacters($this->sst[$index]['value'])); + $text = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::substring($this->sst[$index]['value'], $charPos, \PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($this->sst[$index]['value'])); } - if (\PhpSpreadsheet\Shared\StringHelper::countCharacters($text) > 0) { + if (\PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($text) > 0) { if ($i == 0) { // first text run, no style $richText->createText($text); } else { @@ -3635,13 +3635,13 @@ class Excel5 extends BaseReader implements IReader } if ($this->readEmptyCells || trim($richText->getPlainText()) !== '') { $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - $cell->setValueExplicit($richText, \PhpSpreadsheet\Cell\DataType::TYPE_STRING); + $cell->setValueExplicit($richText, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); $emptyCell = false; } } else { if ($this->readEmptyCells || trim($this->sst[$index]['value']) !== '') { $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - $cell->setValueExplicit($this->sst[$index]['value'], \PhpSpreadsheet\Cell\DataType::TYPE_STRING); + $cell->setValueExplicit($this->sst[$index]['value'], \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); $emptyCell = false; } } @@ -3683,7 +3683,7 @@ class Excel5 extends BaseReader implements IReader $offset = 4; for ($i = 0; $i < $columns; ++$i) { - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($colFirst + $i); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($colFirst + $i); // Read cell? if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { @@ -3699,7 +3699,7 @@ class Excel5 extends BaseReader implements IReader } // add cell value - $cell->setValueExplicit($numValue, \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC); + $cell->setValueExplicit($numValue, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC); } $offset += 6; @@ -3727,7 +3727,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size 2; index to column $column = self::getInt2d($recordData, 2); - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($column); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column); // Read cell? if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { @@ -3743,7 +3743,7 @@ class Excel5 extends BaseReader implements IReader } // add cell value - $cell->setValueExplicit($numValue, \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC); + $cell->setValueExplicit($numValue, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC); } } @@ -3768,7 +3768,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: 2; col index $column = self::getInt2d($recordData, 2); - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($column); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column); // offset: 20: size: variable; formula structure $formulaStructure = substr($recordData, 20); @@ -3792,7 +3792,7 @@ class Excel5 extends BaseReader implements IReader // get the base cell, grab tExp token $baseRow = self::getInt2d($formulaStructure, 3); $baseCol = self::getInt2d($formulaStructure, 5); - $this->_baseCell = \PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol) . ($baseRow + 1); + $this->_baseCell = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol) . ($baseRow + 1); } // Read cell? @@ -3810,7 +3810,7 @@ class Excel5 extends BaseReader implements IReader // offset: 6; size: 8; result of the formula if ((ord($recordData{6}) == 0) && (ord($recordData{12}) == 255) && (ord($recordData{13}) == 255)) { // String formula. Result follows in appended STRING record - $dataType = \PhpSpreadsheet\Cell\DataType::TYPE_STRING; + $dataType = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING; // read possible SHAREDFMLA record $code = self::getInt2d($this->data, $this->pos); @@ -3824,23 +3824,23 @@ class Excel5 extends BaseReader implements IReader && (ord($recordData{12}) == 255) && (ord($recordData{13}) == 255)) { // Boolean formula. Result is in +2; 0=false, 1=true - $dataType = \PhpSpreadsheet\Cell\DataType::TYPE_BOOL; + $dataType = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_BOOL; $value = (bool) ord($recordData{8}); } elseif ((ord($recordData{6}) == 2) && (ord($recordData{12}) == 255) && (ord($recordData{13}) == 255)) { // Error formula. Error code is in +2 - $dataType = \PhpSpreadsheet\Cell\DataType::TYPE_ERROR; + $dataType = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_ERROR; $value = Excel5\ErrorCode::lookup(ord($recordData{8})); } elseif ((ord($recordData{6}) == 3) && (ord($recordData{12}) == 255) && (ord($recordData{13}) == 255)) { // Formula result is a null string - $dataType = \PhpSpreadsheet\Cell\DataType::TYPE_NULL; + $dataType = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL; $value = ''; } else { // forumla result is a number, first 14 bytes like _NUMBER record - $dataType = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $dataType = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; $value = self::extractNumber(substr($recordData, 6, 8)); } @@ -3859,8 +3859,8 @@ class Excel5 extends BaseReader implements IReader throw new Exception('Not BIFF8. Can only read BIFF8 formulas'); } $formula = $this->getFormulaFromStructure($formulaStructure); // get formula in human language - $cell->setValueExplicit('=' . $formula, \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA); - } catch (\PhpSpreadsheet\Exception $e) { + $cell->setValueExplicit('=' . $formula, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA); + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { $cell->setValueExplicit($value, $dataType); } } else { @@ -3952,7 +3952,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: 2; column index $column = self::getInt2d($recordData, 2); - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($column); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column); // Read cell? if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { @@ -3971,13 +3971,13 @@ class Excel5 extends BaseReader implements IReader $value = (bool) $boolErr; // add cell value - $cell->setValueExplicit($value, \PhpSpreadsheet\Cell\DataType::TYPE_BOOL); + $cell->setValueExplicit($value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_BOOL); break; case 1: // error type $value = Excel5\ErrorCode::lookup($boolErr); // add cell value - $cell->setValueExplicit($value, \PhpSpreadsheet\Cell\DataType::TYPE_ERROR); + $cell->setValueExplicit($value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_ERROR); break; } @@ -4014,7 +4014,7 @@ class Excel5 extends BaseReader implements IReader // add style information if (!$this->readDataOnly && $this->readEmptyCells) { for ($i = 0; $i < $length / 2 - 3; ++$i) { - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($fc + $i); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($fc + $i); // Read cell? if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { @@ -4050,7 +4050,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: 2; index to column $column = self::getInt2d($recordData, 2); - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($column); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column); // Read cell? if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { @@ -4068,7 +4068,7 @@ class Excel5 extends BaseReader implements IReader } if ($this->readEmptyCells || trim($value) !== '') { $cell = $this->phpSheet->getCell($columnString . ($row + 1)); - $cell->setValueExplicit($value, \PhpSpreadsheet\Cell\DataType::TYPE_STRING); + $cell->setValueExplicit($value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING); if (!$this->readDataOnly) { // add cell style @@ -4094,7 +4094,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: 2; col index $col = self::getInt2d($recordData, 2); - $columnString = \PhpSpreadsheet\Cell::stringFromColumnIndex($col); + $columnString = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col); // Read cell? if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($columnString, $row + 1, $this->phpSheet->getTitle())) { @@ -4221,9 +4221,9 @@ class Excel5 extends BaseReader implements IReader //FIXME: set $firstVisibleRow and $firstVisibleColumn - if ($this->phpSheet->getSheetView()->getView() !== \PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT) { + if ($this->phpSheet->getSheetView()->getView() !== \PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT) { //NOTE: this setting is inferior to page layout view(Excel2007-) - $view = $isPageBreakPreview ? \PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW : \PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_NORMAL; + $view = $isPageBreakPreview ? \PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW : \PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_NORMAL; $this->phpSheet->getSheetView()->setView($view); if ($this->version === self::XLS_BIFF8) { $zoomScale = $isPageBreakPreview ? $zoomscaleInPageBreakPreview : $zoomscaleInNormalView; @@ -4264,7 +4264,7 @@ class Excel5 extends BaseReader implements IReader $fWhitespaceHidden = ($grbit >> 3) & 0x01; //no support if ($fPageLayoutView === 1) { - $this->phpSheet->getSheetView()->setView(\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT); + $this->phpSheet->getSheetView()->setView(\PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT); $this->phpSheet->getSheetView()->setZoomScale($wScalePLV); //set by Excel2007 only if SHEETVIEW_PAGE_LAYOUT } //otherwise, we cannot know whether SHEETVIEW_PAGE_LAYOUT or SHEETVIEW_PAGE_BREAK_PREVIEW. @@ -4311,7 +4311,7 @@ class Excel5 extends BaseReader implements IReader if ($this->frozen) { // frozen panes - $this->phpSheet->freezePane(\PhpSpreadsheet\Cell::stringFromColumnIndex($px) . ($py + 1)); + $this->phpSheet->freezePane(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($px) . ($py + 1)); } else { // unfrozen panes; split windows; not supported by PhpSpreadsheet core } @@ -4373,7 +4373,7 @@ class Excel5 extends BaseReader implements IReader $includeCellRange = true; if ($this->getReadFilter() !== null) { $includeCellRange = false; - $rangeBoundaries = \PhpSpreadsheet\Cell::getRangeBoundaries($cellRangeAddress); + $rangeBoundaries = \PhpOffice\PhpSpreadsheet\Cell::getRangeBoundaries($cellRangeAddress); ++$rangeBoundaries[1][0]; for ($row = $rangeBoundaries[0][1]; $row <= $rangeBoundaries[1][1]; ++$row) { for ($column = $rangeBoundaries[0][0]; $column != $rangeBoundaries[1][0]; ++$column) { @@ -4431,7 +4431,7 @@ class Excel5 extends BaseReader implements IReader // offset: 0; size: 8; cell range address of all cells containing this hyperlink try { $cellRange = $this->readBIFF8CellRangeAddressFixed($recordData, 0, 8); - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { return; } @@ -4581,7 +4581,7 @@ class Excel5 extends BaseReader implements IReader } // apply the hyperlink to all the relevant cells - foreach (\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($cellRange) as $coordinate) { + foreach (\PhpOffice\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($cellRange) as $coordinate) { $this->phpSheet->getCell($coordinate)->getHyperLink()->setUrl($url); } } @@ -4621,28 +4621,28 @@ class Excel5 extends BaseReader implements IReader $type = (0x0000000F & $options) >> 0; switch ($type) { case 0x00: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_NONE; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_NONE; break; case 0x01: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE; break; case 0x02: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_DECIMAL; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_DECIMAL; break; case 0x03: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_LIST; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST; break; case 0x04: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_DATE; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_DATE; break; case 0x05: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_TIME; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_TIME; break; case 0x06: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_TEXTLENGTH; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_TEXTLENGTH; break; case 0x07: - $type = \PhpSpreadsheet\Cell\DataValidation::TYPE_CUSTOM; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_CUSTOM; break; } @@ -4650,13 +4650,13 @@ class Excel5 extends BaseReader implements IReader $errorStyle = (0x00000070 & $options) >> 4; switch ($errorStyle) { case 0x00: - $errorStyle = \PhpSpreadsheet\Cell\DataValidation::STYLE_STOP; + $errorStyle = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP; break; case 0x01: - $errorStyle = \PhpSpreadsheet\Cell\DataValidation::STYLE_WARNING; + $errorStyle = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_WARNING; break; case 0x02: - $errorStyle = \PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION; + $errorStyle = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION; break; } @@ -4680,28 +4680,28 @@ class Excel5 extends BaseReader implements IReader $operator = (0x00F00000 & $options) >> 20; switch ($operator) { case 0x00: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_BETWEEN; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_BETWEEN; break; case 0x01: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTBETWEEN; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTBETWEEN; break; case 0x02: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_EQUAL; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_EQUAL; break; case 0x03: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTEQUAL; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTEQUAL; break; case 0x04: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHAN; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHAN; break; case 0x05: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHAN; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHAN; break; case 0x06: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHANOREQUAL; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHANOREQUAL; break; case 0x07: - $operator = \PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHANOREQUAL; + $operator = \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHANOREQUAL; break; } @@ -4740,10 +4740,10 @@ class Excel5 extends BaseReader implements IReader $formula1 = $this->getFormulaFromStructure($formula1); // in list type validity, null characters are used as item separators - if ($type == \PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) { + if ($type == \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST) { $formula1 = str_replace(chr(0), ',', $formula1); } - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { return; } $offset += $sz1; @@ -4760,7 +4760,7 @@ class Excel5 extends BaseReader implements IReader $formula2 = pack('v', $sz2) . $formula2; // prepend the length try { $formula2 = $this->getFormulaFromStructure($formula2); - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { return; } $offset += $sz2; @@ -4771,7 +4771,7 @@ class Excel5 extends BaseReader implements IReader foreach ($cellRangeAddresses as $cellRange) { $stRange = $this->phpSheet->shrinkRangeToFit($cellRange); - foreach (\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($stRange) as $coordinate) { + foreach (\PhpOffice\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($stRange) as $coordinate) { $objValidation = $this->phpSheet->getCell($coordinate)->getDataValidation(); $objValidation->setType($type); $objValidation->setErrorStyle($errorStyle); @@ -4966,7 +4966,7 @@ class Excel5 extends BaseReader implements IReader for ($i = 0; $i < $cref; ++$i) { try { $cellRange = $this->readBIFF8CellRangeAddressFixed(substr($recordData, 27 + 8 * $i, 8)); - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { return; } $cellRanges[] = $cellRange; @@ -5048,7 +5048,7 @@ class Excel5 extends BaseReader implements IReader } //imagepng($ih, 'image.png'); - $drawing = new \PhpSpreadsheet\Worksheet\Drawing(); + $drawing = new \PhpOffice\PhpSpreadsheet\Worksheet\Drawing(); $drawing->setPath($filename); $drawing->setWorksheet($this->phpSheet); break; @@ -6604,7 +6604,7 @@ class Excel5 extends BaseReader implements IReader $cellAddress = $this->readBIFF8CellAddress(substr($formulaData, 3, 4)); $data = "$sheetRange!$cellAddress"; - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { // deleted sheet reference $data = '#REF!'; } @@ -6622,7 +6622,7 @@ class Excel5 extends BaseReader implements IReader $cellRangeAddress = $this->readBIFF8CellRangeAddress(substr($formulaData, 3, 8)); $data = "$sheetRange!$cellRangeAddress"; - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { // deleted sheet reference $data = '#REF!'; } @@ -6655,7 +6655,7 @@ class Excel5 extends BaseReader implements IReader // offset: 2; size: 2; index to column or column offset + relative flags // bit: 7-0; mask 0x00FF; column index - $column = \PhpSpreadsheet\Cell::stringFromColumnIndex(0x00FF & self::getInt2d($cellAddressStructure, 2)); + $column = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex(0x00FF & self::getInt2d($cellAddressStructure, 2)); // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) if (!(0x4000 & self::getInt2d($cellAddressStructure, 2))) { @@ -6680,8 +6680,8 @@ class Excel5 extends BaseReader implements IReader */ private function readBIFF8CellAddressB($cellAddressStructure, $baseCell = 'A1') { - list($baseCol, $baseRow) = \PhpSpreadsheet\Cell::coordinateFromString($baseCell); - $baseCol = \PhpSpreadsheet\Cell::columnIndexFromString($baseCol) - 1; + list($baseCol, $baseRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($baseCell); + $baseCol = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($baseCol) - 1; // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767)) $rowIndex = self::getInt2d($cellAddressStructure, 0); @@ -6693,11 +6693,11 @@ class Excel5 extends BaseReader implements IReader // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) if (!(0x4000 & self::getInt2d($cellAddressStructure, 2))) { - $column = \PhpSpreadsheet\Cell::stringFromColumnIndex($colIndex); + $column = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($colIndex); $column = '$' . $column; } else { $colIndex = ($colIndex <= 127) ? $colIndex : $colIndex - 256; - $column = \PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $colIndex); + $column = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $colIndex); } // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) @@ -6740,8 +6740,8 @@ class Excel5 extends BaseReader implements IReader } // column index to letter - $fc = \PhpSpreadsheet\Cell::stringFromColumnIndex($fc); - $lc = \PhpSpreadsheet\Cell::stringFromColumnIndex($lc); + $fc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($fc); + $lc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($lc); if ($fr == $lr and $fc == $lc) { return "$fc$fr"; @@ -6779,8 +6779,8 @@ class Excel5 extends BaseReader implements IReader } // column index to letter - $fc = \PhpSpreadsheet\Cell::stringFromColumnIndex($fc); - $lc = \PhpSpreadsheet\Cell::stringFromColumnIndex($lc); + $fc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($fc); + $lc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($lc); if ($fr == $lr and $fc == $lc) { return "$fc$fr"; @@ -6811,7 +6811,7 @@ class Excel5 extends BaseReader implements IReader // offset: 4; size: 2; index to first column or column offset + relative flags // bit: 7-0; mask 0x00FF; column index - $fc = \PhpSpreadsheet\Cell::stringFromColumnIndex(0x00FF & self::getInt2d($subData, 4)); + $fc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex(0x00FF & self::getInt2d($subData, 4)); // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) if (!(0x4000 & self::getInt2d($subData, 4))) { @@ -6826,7 +6826,7 @@ class Excel5 extends BaseReader implements IReader // offset: 6; size: 2; index to last column or column offset + relative flags // bit: 7-0; mask 0x00FF; column index - $lc = \PhpSpreadsheet\Cell::stringFromColumnIndex(0x00FF & self::getInt2d($subData, 6)); + $lc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex(0x00FF & self::getInt2d($subData, 6)); // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) if (!(0x4000 & self::getInt2d($subData, 6))) { @@ -6852,8 +6852,8 @@ class Excel5 extends BaseReader implements IReader */ private function readBIFF8CellRangeAddressB($subData, $baseCell = 'A1') { - list($baseCol, $baseRow) = \PhpSpreadsheet\Cell::coordinateFromString($baseCell); - $baseCol = \PhpSpreadsheet\Cell::columnIndexFromString($baseCol) - 1; + list($baseCol, $baseRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($baseCell); + $baseCol = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($baseCol) - 1; // TODO: if cell range is just a single cell, should this funciton // not just return e.g. 'A1' and not 'A1:A1' ? @@ -6872,12 +6872,12 @@ class Excel5 extends BaseReader implements IReader // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) if (!(0x4000 & self::getInt2d($subData, 4))) { // absolute column index - $fc = \PhpSpreadsheet\Cell::stringFromColumnIndex($fcIndex); + $fc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($fcIndex); $fc = '$' . $fc; } else { // column offset $fcIndex = ($fcIndex <= 127) ? $fcIndex : $fcIndex - 256; - $fc = \PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $fcIndex); + $fc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $fcIndex); } // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) @@ -6896,17 +6896,17 @@ class Excel5 extends BaseReader implements IReader // bit: 7-0; mask 0x00FF; column index $lcIndex = 0x00FF & self::getInt2d($subData, 6); $lcIndex = ($lcIndex <= 127) ? $lcIndex : $lcIndex - 256; - $lc = \PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $lcIndex); + $lc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $lcIndex); // bit: 14; mask 0x4000; (1 = relative column index, 0 = absolute column index) if (!(0x4000 & self::getInt2d($subData, 6))) { // absolute column index - $lc = \PhpSpreadsheet\Cell::stringFromColumnIndex($lcIndex); + $lc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($lcIndex); $lc = '$' . $lc; } else { // column offset $lcIndex = ($lcIndex <= 127) ? $lcIndex : $lcIndex - 256; - $lc = \PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $lcIndex); + $lc = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($baseCol + $lcIndex); } // bit: 15; mask 0x8000; (1 = relative row index, 0 = absolute row index) @@ -7352,7 +7352,7 @@ class Excel5 extends BaseReader implements IReader $string = self::uncompressByteString($string); } - return \PhpSpreadsheet\Shared\StringHelper::convertEncoding($string, 'UTF-8', 'UTF-16LE'); + return \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertEncoding($string, 'UTF-8', 'UTF-16LE'); } /** @@ -7380,7 +7380,7 @@ class Excel5 extends BaseReader implements IReader */ private function decodeCodepage($string) { - return \PhpSpreadsheet\Shared\StringHelper::convertEncoding($string, 'UTF-8', $this->codepage); + return \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertEncoding($string, 'UTF-8', $this->codepage); } /** @@ -7420,7 +7420,7 @@ class Excel5 extends BaseReader implements IReader private function parseRichText($is = '') { - $value = new \PhpSpreadsheet\RichText(); + $value = new \PhpOffice\PhpSpreadsheet\RichText(); $value->createText($is); return $value; diff --git a/src/PhpSpreadsheet/Reader/Excel5/Color.php b/src/PhpSpreadsheet/Reader/Excel5/Color.php index 18656a8d..3a61f8f2 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Color.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Color.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5; class Color { @@ -22,7 +22,7 @@ class Color return $palette[$color - 8]; } else { // default color table - if ($version == \PhpSpreadsheet\Reader\Excel5::XLS_BIFF8) { + if ($version == \PhpOffice\PhpSpreadsheet\Reader\Excel5::XLS_BIFF8) { return Color\BIFF8::lookup($color); } else { // BIFF5 diff --git a/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF5.php b/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF5.php index 68f78cef..5dc8fd43 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF5.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF5.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5\Color; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5\Color; class BIFF5 { diff --git a/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF8.php b/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF8.php index af1ed559..11ba03bc 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF8.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Color/BIFF8.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5\Color; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5\Color; class BIFF8 { diff --git a/src/PhpSpreadsheet/Reader/Excel5/Color/BuiltIn.php b/src/PhpSpreadsheet/Reader/Excel5/Color/BuiltIn.php index 610b40f5..314a850d 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Color/BuiltIn.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Color/BuiltIn.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5\Color; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5\Color; class BuiltIn { diff --git a/src/PhpSpreadsheet/Reader/Excel5/ErrorCode.php b/src/PhpSpreadsheet/Reader/Excel5/ErrorCode.php index d3e9f877..8043b35c 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/ErrorCode.php +++ b/src/PhpSpreadsheet/Reader/Excel5/ErrorCode.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5; class ErrorCode { diff --git a/src/PhpSpreadsheet/Reader/Excel5/Escher.php b/src/PhpSpreadsheet/Reader/Excel5/Escher.php index 22c413c9..7e139f22 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Escher.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Escher.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -100,7 +100,7 @@ class Escher // Parse Escher stream while ($this->pos < $this->dataSize) { // offset: 2; size: 2: Record Type - $fbt = \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos + 2); + $fbt = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos + 2); switch ($fbt) { case self::DGGCONTAINER: @@ -172,15 +172,15 @@ class Escher private function readDefault() { // offset 0; size: 2; recVer and recInstance - $verInstance = \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos); + $verInstance = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos); // offset: 2; size: 2: Record Type - $fbt = \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos + 2); + $fbt = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos + 2); // bit: 0-3; mask: 0x000F; recVer $recVer = (0x000F & $verInstance) >> 0; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -192,14 +192,14 @@ class Escher */ private function readDggContainer() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record $this->pos += 8 + $length; // record is a container, read contents - $dggContainer = new \PhpSpreadsheet\Shared\Escher\DggContainer(); + $dggContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer(); $this->object->setDggContainer($dggContainer); $reader = new self($dggContainer); $reader->load($recordData); @@ -210,7 +210,7 @@ class Escher */ private function readDgg() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -222,14 +222,14 @@ class Escher */ private function readBstoreContainer() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record $this->pos += 8 + $length; // record is a container, read contents - $bstoreContainer = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer(); + $bstoreContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer(); $this->object->setBstoreContainer($bstoreContainer); $reader = new self($bstoreContainer); $reader->load($recordData); @@ -243,16 +243,16 @@ class Escher // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; + $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record $this->pos += 8 + $length; // add BSE to BstoreContainer - $BSE = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE(); + $BSE = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE(); $this->object->addBSE($BSE); $BSE->setBLIPType($recInstance); @@ -267,16 +267,16 @@ class Escher $rgbUid = substr($recordData, 2, 16); // offset: 18; size: 2; tag - $tag = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 18); + $tag = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 18); // offset: 20; size: 4; size of BLIP in bytes - $size = \PhpSpreadsheet\Reader\Excel5::getInt4d($recordData, 20); + $size = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($recordData, 20); // offset: 24; size: 4; number of references to this BLIP - $cRef = \PhpSpreadsheet\Reader\Excel5::getInt4d($recordData, 24); + $cRef = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($recordData, 24); // offset: 28; size: 4; MSOFO file offset - $foDelay = \PhpSpreadsheet\Reader\Excel5::getInt4d($recordData, 28); + $foDelay = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($recordData, 28); // offset: 32; size: 1; unused1 $unused1 = ord($recordData{32}); @@ -297,7 +297,7 @@ class Escher $blipData = substr($recordData, 36 + $cbName); // record is a container, read contents - $reader = new \PhpSpreadsheet\Reader\Excel5\Escher($BSE); + $reader = new \PhpOffice\PhpSpreadsheet\Reader\Excel5\Escher($BSE); $reader->load($blipData); } @@ -309,9 +309,9 @@ class Escher // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; + $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -336,7 +336,7 @@ class Escher // offset: var; size: var; the raw image data $data = substr($recordData, $pos); - $blip = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); + $blip = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); $blip->setData($data); $this->object->setBlip($blip); @@ -350,9 +350,9 @@ class Escher // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; + $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -377,7 +377,7 @@ class Escher // offset: var; size: var; the raw image data $data = substr($recordData, $pos); - $blip = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); + $blip = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); $blip->setData($data); $this->object->setBlip($blip); @@ -391,9 +391,9 @@ class Escher // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; + $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -410,9 +410,9 @@ class Escher // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; + $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -424,7 +424,7 @@ class Escher */ private function readSplitMenuColors() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -436,16 +436,16 @@ class Escher */ private function readDgContainer() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record $this->pos += 8 + $length; // record is a container, read contents - $dgContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer(); + $dgContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer(); $this->object->setDgContainer($dgContainer); - $reader = new \PhpSpreadsheet\Reader\Excel5\Escher($dgContainer); + $reader = new \PhpOffice\PhpSpreadsheet\Reader\Excel5\Escher($dgContainer); $escher = $reader->load($recordData); } @@ -454,7 +454,7 @@ class Escher */ private function readDg() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -468,16 +468,16 @@ class Escher { // context is either context DgContainer or SpgrContainer - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record $this->pos += 8 + $length; // record is a container, read contents - $spgrContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer(); + $spgrContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer(); - if ($this->object instanceof \PhpSpreadsheet\Shared\Escher\DgContainer) { + if ($this->object instanceof \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer) { // DgContainer $this->object->setSpgrContainer($spgrContainer); } else { @@ -494,11 +494,11 @@ class Escher */ private function readSpContainer() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // add spContainer to spgrContainer - $spContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); + $spContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); $this->object->addChild($spContainer); // move stream pointer to next record @@ -514,7 +514,7 @@ class Escher */ private function readSpgr() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -529,9 +529,9 @@ class Escher // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; + $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -546,9 +546,9 @@ class Escher // offset: 0; size: 2; recVer and recInstance // bit: 4-15; mask: 0xFFF0; recInstance - $recInstance = (0xFFF0 & \PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; + $recInstance = (0xFFF0 & \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($this->data, $this->pos)) >> 4; - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -560,38 +560,38 @@ class Escher */ private function readClientAnchor() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record $this->pos += 8 + $length; // offset: 2; size: 2; upper-left corner column index (0-based) - $c1 = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 2); + $c1 = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 2); // offset: 4; size: 2; upper-left corner horizontal offset in 1/1024 of column width - $startOffsetX = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 4); + $startOffsetX = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 4); // offset: 6; size: 2; upper-left corner row index (0-based) - $r1 = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 6); + $r1 = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 6); // offset: 8; size: 2; upper-left corner vertical offset in 1/256 of row height - $startOffsetY = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 8); + $startOffsetY = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 8); // offset: 10; size: 2; bottom-right corner column index (0-based) - $c2 = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 10); + $c2 = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 10); // offset: 12; size: 2; bottom-right corner horizontal offset in 1/1024 of column width - $endOffsetX = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 12); + $endOffsetX = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 12); // offset: 14; size: 2; bottom-right corner row index (0-based) - $r2 = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 14); + $r2 = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 14); // offset: 16; size: 2; bottom-right corner vertical offset in 1/256 of row height - $endOffsetY = \PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 16); + $endOffsetY = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($recordData, 16); // set the start coordinates - $this->object->setStartCoordinates(\PhpSpreadsheet\Cell::stringFromColumnIndex($c1) . ($r1 + 1)); + $this->object->setStartCoordinates(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($c1) . ($r1 + 1)); // set the start offsetX $this->object->setStartOffsetX($startOffsetX); @@ -600,7 +600,7 @@ class Escher $this->object->setStartOffsetY($startOffsetY); // set the end coordinates - $this->object->setEndCoordinates(\PhpSpreadsheet\Cell::stringFromColumnIndex($c2) . ($r2 + 1)); + $this->object->setEndCoordinates(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($c2) . ($r2 + 1)); // set the end offsetX $this->object->setEndOffsetX($endOffsetX); @@ -614,7 +614,7 @@ class Escher */ private function readClientData() { - $length = \PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); + $length = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($this->data, $this->pos + 4); $recordData = substr($this->data, $this->pos + 8, $length); // move stream pointer to next record @@ -637,7 +637,7 @@ class Escher $fopte = substr($data, 6 * $i, 6); // offset: 0; size: 2; opid - $opid = \PhpSpreadsheet\Reader\Excel5::getInt2d($fopte, 0); + $opid = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt2d($fopte, 0); // bit: 0-13; mask: 0x3FFF; opid.opid $opidOpid = (0x3FFF & $opid) >> 0; @@ -649,7 +649,7 @@ class Escher $opidFComplex = (0x8000 & $opid) >> 15; // offset: 2; size: 4; the value for this property - $op = \PhpSpreadsheet\Reader\Excel5::getInt4d($fopte, 2); + $op = \PhpOffice\PhpSpreadsheet\Reader\Excel5::getInt4d($fopte, 2); if ($opidFComplex) { $complexData = substr($splicedComplexData, 0, $op); diff --git a/src/PhpSpreadsheet/Reader/Excel5/MD5.php b/src/PhpSpreadsheet/Reader/Excel5/MD5.php index 607a0781..51ab4271 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/MD5.php +++ b/src/PhpSpreadsheet/Reader/Excel5/MD5.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Reader/Excel5/RC4.php b/src/PhpSpreadsheet/Reader/Excel5/RC4.php index 994cb664..d2af887a 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/RC4.php +++ b/src/PhpSpreadsheet/Reader/Excel5/RC4.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Reader/Excel5/Style/Border.php b/src/PhpSpreadsheet/Reader/Excel5/Style/Border.php index 50faf6ae..e59e6ad0 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Style/Border.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Style/Border.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5\Style; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5\Style; -use PhpSpreadsheet\Style\Border as StyleBorder; +use PhpOffice\PhpSpreadsheet\Style\Border as StyleBorder; class Border { diff --git a/src/PhpSpreadsheet/Reader/Excel5/Style/FillPattern.php b/src/PhpSpreadsheet/Reader/Excel5/Style/FillPattern.php index 1a34b54e..0125415c 100644 --- a/src/PhpSpreadsheet/Reader/Excel5/Style/FillPattern.php +++ b/src/PhpSpreadsheet/Reader/Excel5/Style/FillPattern.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Reader\Excel5\Style; +namespace PhpOffice\PhpSpreadsheet\Reader\Excel5\Style; -use PhpSpreadsheet\Style\Fill; +use PhpOffice\PhpSpreadsheet\Style\Fill; class FillPattern { diff --git a/src/PhpSpreadsheet/Reader/Exception.php b/src/PhpSpreadsheet/Reader/Exception.php index 7212d8cd..62da0e51 100644 --- a/src/PhpSpreadsheet/Reader/Exception.php +++ b/src/PhpSpreadsheet/Reader/Exception.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Reader; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Exception extends \PhpSpreadsheet\Exception +class Exception extends \PhpOffice\PhpSpreadsheet\Exception { /** * Error handler callback diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index f119cfa7..4f9beeed 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; use DateTimeZone; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -51,7 +51,7 @@ class Gnumeric extends BaseReader implements IReader public function __construct() { $this->readFilter = new DefaultReadFilter(); - $this->referenceHelper = \PhpSpreadsheet\ReferenceHelper::getInstance(); + $this->referenceHelper = \PhpOffice\PhpSpreadsheet\ReferenceHelper::getInstance(); } /** @@ -99,7 +99,7 @@ class Gnumeric extends BaseReader implements IReader } $xml = new XMLReader(); - $xml->xml($this->securityScanFile('compress.zlib://' . realpath($pFilename)), null, \PhpSpreadsheet\Settings::getLibXmlLoaderOptions()); + $xml->xml($this->securityScanFile('compress.zlib://' . realpath($pFilename)), null, \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions()); $xml->setParserProperty(2, true); $worksheetNames = []; @@ -130,7 +130,7 @@ class Gnumeric extends BaseReader implements IReader } $xml = new XMLReader(); - $xml->xml($this->securityScanFile('compress.zlib://' . realpath($pFilename)), null, \PhpSpreadsheet\Settings::getLibXmlLoaderOptions()); + $xml->xml($this->securityScanFile('compress.zlib://' . realpath($pFilename)), null, \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions()); $xml->setParserProperty(2, true); $worksheetInfo = []; @@ -158,7 +158,7 @@ class Gnumeric extends BaseReader implements IReader break; } } - $tmpInfo['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['lastColumnLetter'] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); $worksheetInfo[] = $tmpInfo; } } @@ -219,7 +219,7 @@ class Gnumeric extends BaseReader implements IReader $gFileData = $this->gzfileGetContents($pFilename); - $xml = simplexml_load_string($this->securityScan($gFileData), 'SimpleXMLElement', \PhpSpreadsheet\Settings::getLibXmlLoaderOptions()); + $xml = simplexml_load_string($this->securityScan($gFileData), 'SimpleXMLElement', \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions()); $namespacesMeta = $xml->getNamespaces(true); $gnmXML = $xml->children($namespacesMeta['gnm']); @@ -390,7 +390,7 @@ class Gnumeric extends BaseReader implements IReader $maxCol = $column; } - $column = \PhpSpreadsheet\Cell::stringFromColumnIndex($column); + $column = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column); // Read cell? if ($this->getReadFilter() !== null) { @@ -401,7 +401,7 @@ class Gnumeric extends BaseReader implements IReader $ValueType = $cellAttributes->ValueType; $ExprID = (string) $cellAttributes->ExprID; - $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; if ($ExprID > '') { if (((string) $cell) > '') { $this->expressions[$ExprID] = [ @@ -420,27 +420,27 @@ class Gnumeric extends BaseReader implements IReader $worksheetName ); } - $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; } else { switch ($ValueType) { case '10': // NULL - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NULL; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL; break; case '20': // Boolean - $type = \PhpSpreadsheet\Cell\DataType::TYPE_BOOL; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_BOOL; $cell = ($cell == 'TRUE') ? true : false; break; case '30': // Integer $cell = intval($cell); // Excel 2007+ doesn't differentiate between integer and float, so set the value and dropthru to the next (numeric) case case '40': // Float - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; break; case '50': // Error - $type = \PhpSpreadsheet\Cell\DataType::TYPE_ERROR; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_ERROR; break; case '60': // String - $type = \PhpSpreadsheet\Cell\DataType::TYPE_STRING; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING; break; case '70': // Cell Range case '80': // Array @@ -462,11 +462,11 @@ class Gnumeric extends BaseReader implements IReader $styleAttributes = $styleRegion->attributes(); if (($styleAttributes['startRow'] <= $maxRow) && ($styleAttributes['startCol'] <= $maxCol)) { - $startColumn = \PhpSpreadsheet\Cell::stringFromColumnIndex((int) $styleAttributes['startCol']); + $startColumn = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex((int) $styleAttributes['startCol']); $startRow = $styleAttributes['startRow'] + 1; $endColumn = ($styleAttributes['endCol'] > $maxCol) ? $maxCol : (int) $styleAttributes['endCol']; - $endColumn = \PhpSpreadsheet\Cell::stringFromColumnIndex($endColumn); + $endColumn = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($endColumn); $endRow = ($styleAttributes['endRow'] > $maxRow) ? $maxRow : $styleAttributes['endRow']; $endRow += 1; $cellRange = $startColumn . $startRow . ':' . $endColumn . $endRow; @@ -475,45 +475,45 @@ class Gnumeric extends BaseReader implements IReader // We still set the number format mask for date/time values, even if readDataOnly is true if ((!$this->readDataOnly) || - (\PhpSpreadsheet\Shared\Date::isDateTimeFormatCode((string) $styleAttributes['Format']))) { + (\PhpOffice\PhpSpreadsheet\Shared\Date::isDateTimeFormatCode((string) $styleAttributes['Format']))) { $styleArray = []; $styleArray['numberformat']['code'] = (string) $styleAttributes['Format']; // If readDataOnly is false, we set all formatting information if (!$this->readDataOnly) { switch ($styleAttributes['HAlign']) { case '1': - $styleArray['alignment']['horizontal'] = \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL; + $styleArray['alignment']['horizontal'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL; break; case '2': - $styleArray['alignment']['horizontal'] = \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT; + $styleArray['alignment']['horizontal'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT; break; case '4': - $styleArray['alignment']['horizontal'] = \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT; + $styleArray['alignment']['horizontal'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT; break; case '8': - $styleArray['alignment']['horizontal'] = \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER; + $styleArray['alignment']['horizontal'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER; break; case '16': case '64': - $styleArray['alignment']['horizontal'] = \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS; + $styleArray['alignment']['horizontal'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS; break; case '32': - $styleArray['alignment']['horizontal'] = \PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY; + $styleArray['alignment']['horizontal'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY; break; } switch ($styleAttributes['VAlign']) { case '1': - $styleArray['alignment']['vertical'] = \PhpSpreadsheet\Style\Alignment::VERTICAL_TOP; + $styleArray['alignment']['vertical'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP; break; case '2': - $styleArray['alignment']['vertical'] = \PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM; + $styleArray['alignment']['vertical'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM; break; case '4': - $styleArray['alignment']['vertical'] = \PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER; + $styleArray['alignment']['vertical'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER; break; case '8': - $styleArray['alignment']['vertical'] = \PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY; + $styleArray['alignment']['vertical'] = \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY; break; } @@ -531,64 +531,64 @@ class Gnumeric extends BaseReader implements IReader $styleArray['fill']['endcolor']['rgb'] = $RGB2; switch ($shade) { case '1': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_SOLID; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID; break; case '2': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR; break; case '3': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH; break; case '4': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKDOWN; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKDOWN; break; case '5': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRAY; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRAY; break; case '6': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRID; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRID; break; case '7': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKHORIZONTAL; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKHORIZONTAL; break; case '8': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKTRELLIS; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKTRELLIS; break; case '9': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKUP; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKUP; break; case '10': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKVERTICAL; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKVERTICAL; break; case '11': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY0625; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY0625; break; case '12': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125; break; case '13': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTDOWN; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTDOWN; break; case '14': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRAY; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRAY; break; case '15': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRID; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRID; break; case '16': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTHORIZONTAL; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTHORIZONTAL; break; case '17': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTTRELLIS; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTTRELLIS; break; case '18': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTUP; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTUP; break; case '19': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTVERTICAL; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTVERTICAL; break; case '20': - $styleArray['fill']['type'] = \PhpSpreadsheet\Style\Fill::FILL_PATTERN_MEDIUMGRAY; + $styleArray['fill']['type'] = \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_MEDIUMGRAY; break; } } @@ -601,19 +601,19 @@ class Gnumeric extends BaseReader implements IReader $styleArray['font']['strike'] = ($fontAttributes['StrikeThrough'] == '1') ? true : false; switch ($fontAttributes['Underline']) { case '1': - $styleArray['font']['underline'] = \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE; + $styleArray['font']['underline'] = \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE; break; case '2': - $styleArray['font']['underline'] = \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE; + $styleArray['font']['underline'] = \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE; break; case '3': - $styleArray['font']['underline'] = \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING; + $styleArray['font']['underline'] = \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING; break; case '4': - $styleArray['font']['underline'] = \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING; + $styleArray['font']['underline'] = \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING; break; default: - $styleArray['font']['underline'] = \PhpSpreadsheet\Style\Font::UNDERLINE_NONE; + $styleArray['font']['underline'] = \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE; break; } switch ($fontAttributes['Script']) { @@ -640,13 +640,13 @@ class Gnumeric extends BaseReader implements IReader } if ((isset($styleRegion->Style->StyleBorder->Diagonal)) && (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}))) { $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes()); - $styleArray['borders']['diagonaldirection'] = \PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH; + $styleArray['borders']['diagonaldirection'] = \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH; } elseif (isset($styleRegion->Style->StyleBorder->Diagonal)) { $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->Diagonal->attributes()); - $styleArray['borders']['diagonaldirection'] = \PhpSpreadsheet\Style\Borders::DIAGONAL_UP; + $styleArray['borders']['diagonaldirection'] = \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_UP; } elseif (isset($styleRegion->Style->StyleBorder->{'Rev-Diagonal'})) { $styleArray['borders']['diagonal'] = self::parseBorderAttributes($styleRegion->Style->StyleBorder->{'Rev-Diagonal'}->attributes()); - $styleArray['borders']['diagonaldirection'] = \PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN; + $styleArray['borders']['diagonaldirection'] = \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN; } } if (isset($styleRegion->Style->HyperLink)) { @@ -671,19 +671,19 @@ class Gnumeric extends BaseReader implements IReader $hidden = ((isset($columnAttributes['Hidden'])) && ($columnAttributes['Hidden'] == '1')) ? true : false; $columnCount = (isset($columnAttributes['Count'])) ? $columnAttributes['Count'] : 1; while ($c < $column) { - $spreadsheet->getActiveSheet()->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); + $spreadsheet->getActiveSheet()->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); ++$c; } while (($c < ($column + $columnCount)) && ($c <= $maxCol)) { - $spreadsheet->getActiveSheet()->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setWidth($columnWidth); + $spreadsheet->getActiveSheet()->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setWidth($columnWidth); if ($hidden) { - $spreadsheet->getActiveSheet()->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setVisible(false); + $spreadsheet->getActiveSheet()->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setVisible(false); } ++$c; } } while ($c <= $maxCol) { - $spreadsheet->getActiveSheet()->getColumnDimension(\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); + $spreadsheet->getActiveSheet()->getColumnDimension(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($c))->setWidth($defaultWidth); ++$c; } } @@ -743,7 +743,7 @@ class Gnumeric extends BaseReader implements IReader $range[0] = trim($range[0], "'"); if ($worksheet = $spreadsheet->getSheetByName($range[0])) { $extractedRange = str_replace('$', '', $range[1]); - $spreadsheet->addNamedRange(new \PhpSpreadsheet\NamedRange($name, $worksheet, $extractedRange)); + $spreadsheet->addNamedRange(new \PhpOffice\PhpSpreadsheet\NamedRange($name, $worksheet, $extractedRange)); } } } @@ -761,46 +761,46 @@ class Gnumeric extends BaseReader implements IReader switch ($borderAttributes['Style']) { case '0': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_NONE; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE; break; case '1': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; case '2': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_MEDIUM; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM; break; case '3': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT; break; case '4': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_DASHED; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED; break; case '5': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_THICK; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK; break; case '6': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_DOUBLE; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE; break; case '7': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_DOTTED; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED; break; case '8': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED; break; case '9': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_DASHDOT; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT; break; case '10': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT; break; case '11': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT; break; case '12': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT; break; case '13': - $styleArray['style'] = \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT; + $styleArray['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT; break; } @@ -809,7 +809,7 @@ class Gnumeric extends BaseReader implements IReader private function parseRichText($is = '') { - $value = new \PhpSpreadsheet\RichText(); + $value = new \PhpOffice\PhpSpreadsheet\RichText(); $value->createText($is); return $value; diff --git a/src/PhpSpreadsheet/Reader/HTML.php b/src/PhpSpreadsheet/Reader/HTML.php index 77920722..178d110a 100644 --- a/src/PhpSpreadsheet/Reader/HTML.php +++ b/src/PhpSpreadsheet/Reader/HTML.php @@ -1,12 +1,12 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; use DOMDocument; use DOMElement; use DOMNode; use DOMText; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -93,16 +93,16 @@ class HTML extends BaseReader implements IReader 'font' => [ 'underline' => true, 'color' => [ - 'argb' => \PhpSpreadsheet\Style\Color::COLOR_BLUE, + 'argb' => \PhpOffice\PhpSpreadsheet\Style\Color::COLOR_BLUE, ], ], ], // Blue underlined 'hr' => [ 'borders' => [ 'bottom' => [ - 'style' => \PhpSpreadsheet\Style\Border::BORDER_THIN, + 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN, 'color' => [ - \PhpSpreadsheet\Style\Color::COLOR_BLACK, + \PhpOffice\PhpSpreadsheet\Style\Color::COLOR_BLACK, ], ], ], @@ -223,12 +223,12 @@ class HTML extends BaseReader implements IReader /** * @param DOMNode $element - * @param \PhpSpreadsheet\Worksheet $sheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet * @param int $row * @param string $column * @param string $cellContent */ - protected function processDomElement(DOMNode $element, \PhpSpreadsheet\Worksheet $sheet, &$row, &$column, &$cellContent) + protected function processDomElement(DOMNode $element, \PhpOffice\PhpSpreadsheet\Worksheet $sheet, &$row, &$column, &$cellContent) { foreach ($element->childNodes as $child) { if ($child instanceof DOMText) { @@ -398,7 +398,7 @@ class HTML extends BaseReader implements IReader ++$columnTo; } $range = $column . $row . ':' . $columnTo . ($row + $attributeArray['rowspan'] - 1); - foreach (\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($range) as $value) { + foreach (\PhpOffice\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($range) as $value) { $this->rowspan[$value] = true; } $sheet->mergeCells($range); @@ -406,7 +406,7 @@ class HTML extends BaseReader implements IReader } elseif (isset($attributeArray['rowspan'])) { //create merging rowspan $range = $column . $row . ':' . $column . ($row + $attributeArray['rowspan'] - 1); - foreach (\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($range) as $value) { + foreach (\PhpOffice\PhpSpreadsheet\Cell::extractAllCellReferencesInRange($range) as $value) { $this->rowspan[$value] = true; } $sheet->mergeCells($range); diff --git a/src/PhpSpreadsheet/Reader/IReadFilter.php b/src/PhpSpreadsheet/Reader/IReadFilter.php index 4c8de5f5..2be7a878 100644 --- a/src/PhpSpreadsheet/Reader/IReadFilter.php +++ b/src/PhpSpreadsheet/Reader/IReadFilter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Reader/IReader.php b/src/PhpSpreadsheet/Reader/IReader.php index 6d401017..65fd0d49 100644 --- a/src/PhpSpreadsheet/Reader/IReader.php +++ b/src/PhpSpreadsheet/Reader/IReader.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Reader/OOCalc.php b/src/PhpSpreadsheet/Reader/OOCalc.php index 2717b07b..bf1dfc33 100644 --- a/src/PhpSpreadsheet/Reader/OOCalc.php +++ b/src/PhpSpreadsheet/Reader/OOCalc.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; use DateTime; use DateTimeZone; @@ -58,7 +58,7 @@ class OOCalc extends BaseReader implements IReader throw new Exception('Could not open ' . $pFilename . ' for reading! File does not exist.'); } - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); // Check if zip class exists // if (!class_exists($zipClass, false)) { @@ -77,7 +77,7 @@ class OOCalc extends BaseReader implements IReader $xml = simplexml_load_string( $this->securityScan($zip->getFromName('META-INF/manifest.xml')), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespacesContent = $xml->getNamespaces(true); if (isset($namespacesContent['manifest'])) { @@ -113,7 +113,7 @@ class OOCalc extends BaseReader implements IReader throw new Exception('Could not open ' . $pFilename . ' for reading! File does not exist.'); } - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $zip = new $zipClass(); if (!$zip->open($pFilename)) { @@ -126,7 +126,7 @@ class OOCalc extends BaseReader implements IReader $res = $xml->xml( $this->securityScanFile('zip://' . realpath($pFilename) . '#content.xml'), null, - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $xml->setParserProperty(2, true); @@ -171,7 +171,7 @@ class OOCalc extends BaseReader implements IReader $worksheetInfo = []; - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $zip = new $zipClass(); if (!$zip->open($pFilename)) { @@ -182,7 +182,7 @@ class OOCalc extends BaseReader implements IReader $res = $xml->xml( $this->securityScanFile('zip://' . realpath($pFilename) . '#content.xml'), null, - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $xml->setParserProperty(2, true); @@ -241,7 +241,7 @@ class OOCalc extends BaseReader implements IReader $tmpInfo['totalColumns'] = max($tmpInfo['totalColumns'], $currCells); $tmpInfo['lastColumnIndex'] = $tmpInfo['totalColumns'] - 1; - $tmpInfo['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); + $tmpInfo['lastColumnLetter'] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($tmpInfo['lastColumnIndex']); $worksheetInfo[] = $tmpInfo; } } @@ -255,12 +255,12 @@ class OOCalc extends BaseReader implements IReader * * @param string $pFilename * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ public function load($pFilename) { // Create new Spreadsheet - $spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Load into this instance return $this->loadIntoExisting($pFilename, $spreadsheet); @@ -284,11 +284,11 @@ class OOCalc extends BaseReader implements IReader * Loads PhpSpreadsheet from file into PhpSpreadsheet instance * * @param string $pFilename - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ - public function loadIntoExisting($pFilename, \PhpSpreadsheet\Spreadsheet $spreadsheet) + public function loadIntoExisting($pFilename, \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { // Check if file exists if (!file_exists($pFilename)) { @@ -298,7 +298,7 @@ class OOCalc extends BaseReader implements IReader $timezoneObj = new DateTimeZone('Europe/London'); $GMT = new \DateTimeZone('UTC'); - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $zip = new $zipClass(); if (!$zip->open($pFilename)) { @@ -308,7 +308,7 @@ class OOCalc extends BaseReader implements IReader $xml = simplexml_load_string( $this->securityScan($zip->getFromName('meta.xml')), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespacesMeta = $xml->getNamespaces(true); @@ -361,26 +361,26 @@ class OOCalc extends BaseReader implements IReader $docProps->setCreated($creationDate); break; case 'user-defined': - $propertyValueType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_STRING; + $propertyValueType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_STRING; foreach ($propertyValueAttributes as $key => $value) { if ($key == 'name') { $propertyValueName = (string) $value; } elseif ($key == 'value-type') { switch ($value) { case 'date': - $propertyValue = \PhpSpreadsheet\Document\Properties::convertProperty($propertyValue, 'date'); - $propertyValueType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE; + $propertyValue = \PhpOffice\PhpSpreadsheet\Document\Properties::convertProperty($propertyValue, 'date'); + $propertyValueType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_DATE; break; case 'boolean': - $propertyValue = \PhpSpreadsheet\Document\Properties::convertProperty($propertyValue, 'bool'); - $propertyValueType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN; + $propertyValue = \PhpOffice\PhpSpreadsheet\Document\Properties::convertProperty($propertyValue, 'bool'); + $propertyValueType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_BOOLEAN; break; case 'float': - $propertyValue = \PhpSpreadsheet\Document\Properties::convertProperty($propertyValue, 'r4'); - $propertyValueType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_FLOAT; + $propertyValue = \PhpOffice\PhpSpreadsheet\Document\Properties::convertProperty($propertyValue, 'r4'); + $propertyValueType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_FLOAT; break; default: - $propertyValueType = \PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_STRING; + $propertyValueType = \PhpOffice\PhpSpreadsheet\Document\Properties::PROPERTY_TYPE_STRING; } } } @@ -393,7 +393,7 @@ class OOCalc extends BaseReader implements IReader $xml = simplexml_load_string( $this->securityScan($zip->getFromName('content.xml')), 'SimpleXMLElement', - \PhpSpreadsheet\Settings::getLibXmlLoaderOptions() + \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions() ); $namespacesContent = $xml->getNamespaces(true); @@ -493,7 +493,7 @@ class OOCalc extends BaseReader implements IReader switch ($cellDataOfficeAttributes['value-type']) { case 'string': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_STRING; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING; $dataValue = $allCellDataText; if (isset($dataValue->a)) { $dataValue = $dataValue->a; @@ -502,27 +502,27 @@ class OOCalc extends BaseReader implements IReader } break; case 'boolean': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_BOOL; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_BOOL; $dataValue = ($allCellDataText == 'TRUE') ? true : false; break; case 'percentage': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; $dataValue = (float) $cellDataOfficeAttributes['value']; if (floor($dataValue) == $dataValue) { $dataValue = (integer) $dataValue; } - $formatting = \PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00; + $formatting = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_PERCENTAGE_00; break; case 'currency': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; $dataValue = (float) $cellDataOfficeAttributes['value']; if (floor($dataValue) == $dataValue) { $dataValue = (integer) $dataValue; } - $formatting = \PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE; + $formatting = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_USD_SIMPLE; break; case 'float': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; $dataValue = (float) $cellDataOfficeAttributes['value']; if (floor($dataValue) == $dataValue) { if ($dataValue == (integer) $dataValue) { @@ -533,30 +533,30 @@ class OOCalc extends BaseReader implements IReader } break; case 'date': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; $dateObj = new DateTime($cellDataOfficeAttributes['date-value'], $GMT); $dateObj->setTimeZone($timezoneObj); list($year, $month, $day, $hour, $minute, $second) = explode(' ', $dateObj->format('Y m d H i s')); - $dataValue = \PhpSpreadsheet\Shared\Date::formattedPHPToExcel($year, $month, $day, $hour, $minute, $second); + $dataValue = \PhpOffice\PhpSpreadsheet\Shared\Date::formattedPHPToExcel($year, $month, $day, $hour, $minute, $second); if ($dataValue != floor($dataValue)) { - $formatting = \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15 . ' ' . \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4; + $formatting = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15 . ' ' . \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4; } else { - $formatting = \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15; + $formatting = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15; } break; case 'time': - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; - $dataValue = \PhpSpreadsheet\Shared\Date::PHPToExcel(strtotime('01-01-1970 ' . implode(':', sscanf($cellDataOfficeAttributes['time-value'], 'PT%dH%dM%dS')))); - $formatting = \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC; + $dataValue = \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(strtotime('01-01-1970 ' . implode(':', sscanf($cellDataOfficeAttributes['time-value'], 'PT%dH%dM%dS')))); + $formatting = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4; break; } } else { - $type = \PhpSpreadsheet\Cell\DataType::TYPE_NULL; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL; $dataValue = null; } if ($hasCalculatedValue) { - $type = \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; + $type = \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA; $cellDataFormula = substr($cellDataFormula, strpos($cellDataFormula, ':=') + 1); $temp = explode('"', $cellDataFormula); $tKey = false; @@ -567,7 +567,7 @@ class OOCalc extends BaseReader implements IReader $value = preg_replace('/\[([^\.]+)\.([^\.]+)\]/Ui', '$1!$2', $value); // Cell reference in another sheet $value = preg_replace('/\[\.([^\.]+):\.([^\.]+)\]/Ui', '$1:$2', $value); // Cell range reference $value = preg_replace('/\[\.([^\.]+)\]/Ui', '$1', $value); // Simple cell reference - $value = \PhpSpreadsheet\Calculation::translateSeparator(';', ',', $value, $inBraces); + $value = \PhpOffice\PhpSpreadsheet\Calculation::translateSeparator(';', ',', $value, $inBraces); } } unset($value); @@ -581,7 +581,7 @@ class OOCalc extends BaseReader implements IReader if ($i > 0) { ++$columnID; } - if ($type !== \PhpSpreadsheet\Cell\DataType::TYPE_NULL) { + if ($type !== \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL) { for ($rowAdjust = 0; $rowAdjust < $rowRepeats; ++$rowAdjust) { $rID = $rowID + $rowAdjust; $spreadsheet->getActiveSheet()->getCell($columnID . $rID)->setValueExplicit((($hasCalculatedValue) ? $cellDataFormula : $dataValue), $type); @@ -591,7 +591,7 @@ class OOCalc extends BaseReader implements IReader if ($formatting !== null) { $spreadsheet->getActiveSheet()->getStyle($columnID . $rID)->getNumberFormat()->setFormatCode($formatting); } else { - $spreadsheet->getActiveSheet()->getStyle($columnID . $rID)->getNumberFormat()->setFormatCode(\PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL); + $spreadsheet->getActiveSheet()->getStyle($columnID . $rID)->getNumberFormat()->setFormatCode(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL); } if ($hyperlink !== null) { $spreadsheet->getActiveSheet()->getCell($columnID . $rID)->getHyperlink()->setUrl($hyperlink); @@ -603,10 +603,10 @@ class OOCalc extends BaseReader implements IReader // Merged cells if ((isset($cellDataTableAttributes['number-columns-spanned'])) || (isset($cellDataTableAttributes['number-rows-spanned']))) { - if (($type !== \PhpSpreadsheet\Cell\DataType::TYPE_NULL) || (!$this->readDataOnly)) { + if (($type !== \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL) || (!$this->readDataOnly)) { $columnTo = $columnID; if (isset($cellDataTableAttributes['number-columns-spanned'])) { - $columnTo = \PhpSpreadsheet\Cell::stringFromColumnIndex(\PhpSpreadsheet\Cell::columnIndexFromString($columnID) + $cellDataTableAttributes['number-columns-spanned'] - 2); + $columnTo = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex(\PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($columnID) + $cellDataTableAttributes['number-columns-spanned'] - 2); } $rowTo = $rowID; if (isset($cellDataTableAttributes['number-rows-spanned'])) { @@ -633,7 +633,7 @@ class OOCalc extends BaseReader implements IReader private function parseRichText($is = '') { - $value = new \PhpSpreadsheet\RichText(); + $value = new \PhpOffice\PhpSpreadsheet\RichText(); $value->createText($is); diff --git a/src/PhpSpreadsheet/Reader/SYLK.php b/src/PhpSpreadsheet/Reader/SYLK.php index 4c68249f..4832e892 100644 --- a/src/PhpSpreadsheet/Reader/SYLK.php +++ b/src/PhpSpreadsheet/Reader/SYLK.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Reader; +namespace PhpOffice\PhpSpreadsheet\Reader; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -142,7 +142,7 @@ class SYLK extends BaseReader implements IReader $columnIndex = 0; // convert SYLK encoded $rowData to UTF-8 - $rowData = \PhpSpreadsheet\Shared\StringHelper::SYLKtoUTF8($rowData); + $rowData = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::SYLKtoUTF8($rowData); // explode each row at semicolons while taking into account that literal semicolon (;) // is escaped like this (;;) @@ -169,7 +169,7 @@ class SYLK extends BaseReader implements IReader } } - $worksheetInfo[0]['lastColumnLetter'] = \PhpSpreadsheet\Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); + $worksheetInfo[0]['lastColumnLetter'] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($worksheetInfo[0]['lastColumnIndex']); $worksheetInfo[0]['totalColumns'] = $worksheetInfo[0]['lastColumnIndex'] + 1; // Close file @@ -183,12 +183,12 @@ class SYLK extends BaseReader implements IReader * * @param string $pFilename * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ public function load($pFilename) { // Create new Spreadsheet - $spreadsheet = new \PhpSpreadsheet\Spreadsheet(); + $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet(); // Load into this instance return $this->loadIntoExisting($pFilename, $spreadsheet); @@ -198,11 +198,11 @@ class SYLK extends BaseReader implements IReader * Loads PhpSpreadsheet from file into PhpSpreadsheet instance * * @param string $pFilename - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet * @throws Exception - * @return \PhpSpreadsheet\Spreadsheet + * @return \PhpOffice\PhpSpreadsheet\Spreadsheet */ - public function loadIntoExisting($pFilename, \PhpSpreadsheet\Spreadsheet $spreadsheet) + public function loadIntoExisting($pFilename, \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { // Open file $this->openFile($pFilename); @@ -229,7 +229,7 @@ class SYLK extends BaseReader implements IReader // loop through one row (line) at a time in the file while (($rowData = fgets($fileHandle)) !== false) { // convert SYLK encoded $rowData to UTF-8 - $rowData = \PhpSpreadsheet\Shared\StringHelper::SYLKtoUTF8($rowData); + $rowData = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::SYLKtoUTF8($rowData); // explode each row at semicolons while taking into account that literal semicolon (;) // is escaped like this (;;) @@ -262,16 +262,16 @@ class SYLK extends BaseReader implements IReader $formatArray['font']['bold'] = true; break; case 'T': - $formatArray['borders']['top']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $formatArray['borders']['top']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; case 'B': - $formatArray['borders']['bottom']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $formatArray['borders']['bottom']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; case 'L': - $formatArray['borders']['left']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $formatArray['borders']['left']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; case 'R': - $formatArray['borders']['right']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $formatArray['borders']['right']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; } } @@ -330,7 +330,7 @@ class SYLK extends BaseReader implements IReader if ($columnReference{0} == '[') { $columnReference = $column + trim($columnReference, '[]'); } - $A1CellReference = \PhpSpreadsheet\Cell::stringFromColumnIndex($columnReference - 1) . $rowReference; + $A1CellReference = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($columnReference - 1) . $rowReference; $value = substr_replace($value, $A1CellReference, $cellReference[0][1], strlen($cellReference[0][0])); } @@ -343,13 +343,13 @@ class SYLK extends BaseReader implements IReader break; } } - $columnLetter = \PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); - $cellData = \PhpSpreadsheet\Calculation::unwrapResult($cellData); + $columnLetter = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); + $cellData = \PhpOffice\PhpSpreadsheet\Calculation::unwrapResult($cellData); // Set cell value $spreadsheet->getActiveSheet()->getCell($columnLetter . $row)->setValue(($hasCalculatedValue) ? $cellDataFormula : $cellData); if ($hasCalculatedValue) { - $cellData = \PhpSpreadsheet\Calculation::unwrapResult($cellData); + $cellData = \PhpOffice\PhpSpreadsheet\Calculation::unwrapResult($cellData); $spreadsheet->getActiveSheet()->getCell($columnLetter . $row)->setCalculatedValue($cellData); } // Read cell formatting @@ -383,16 +383,16 @@ class SYLK extends BaseReader implements IReader $styleData['font']['bold'] = true; break; case 'T': - $styleData['borders']['top']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $styleData['borders']['top']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; case 'B': - $styleData['borders']['bottom']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $styleData['borders']['bottom']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; case 'L': - $styleData['borders']['left']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $styleData['borders']['left']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; case 'R': - $styleData['borders']['right']['style'] = \PhpSpreadsheet\Style\Border::BORDER_THIN; + $styleData['borders']['right']['style'] = \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN; break; } } @@ -400,22 +400,22 @@ class SYLK extends BaseReader implements IReader } } if (($formatStyle > '') && ($column > '') && ($row > '')) { - $columnLetter = \PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); + $columnLetter = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); if (isset($this->formats[$formatStyle])) { $spreadsheet->getActiveSheet()->getStyle($columnLetter . $row)->applyFromArray($this->formats[$formatStyle]); } } if ((!empty($styleData)) && ($column > '') && ($row > '')) { - $columnLetter = \PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); + $columnLetter = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column - 1); $spreadsheet->getActiveSheet()->getStyle($columnLetter . $row)->applyFromArray($styleData); } if ($columnWidth > '') { if ($startCol == $endCol) { - $startCol = \PhpSpreadsheet\Cell::stringFromColumnIndex($startCol - 1); + $startCol = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($startCol - 1); $spreadsheet->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth); } else { - $startCol = \PhpSpreadsheet\Cell::stringFromColumnIndex($startCol - 1); - $endCol = \PhpSpreadsheet\Cell::stringFromColumnIndex($endCol - 1); + $startCol = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($startCol - 1); + $endCol = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($endCol - 1); $spreadsheet->getActiveSheet()->getColumnDimension($startCol)->setWidth($columnWidth); do { $spreadsheet->getActiveSheet()->getColumnDimension(++$startCol)->setWidth($columnWidth); diff --git a/src/PhpSpreadsheet/ReferenceHelper.php b/src/PhpSpreadsheet/ReferenceHelper.php index 16bfca8b..03a945f3 100644 --- a/src/PhpSpreadsheet/ReferenceHelper.php +++ b/src/PhpSpreadsheet/ReferenceHelper.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -798,7 +798,7 @@ class ReferenceHelper /** * Update named formulas (i.e. containing worksheet references / named ranges) * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet Object to update + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet Object to update * @param string $oldName Old name (name to replace) * @param string $newName New name */ diff --git a/src/PhpSpreadsheet/RichText.php b/src/PhpSpreadsheet/RichText.php index fc5242b8..a50df1ff 100644 --- a/src/PhpSpreadsheet/RichText.php +++ b/src/PhpSpreadsheet/RichText.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -152,7 +152,7 @@ class RichText implements IComparable if (is_array($pElements)) { $this->richTextElements = $pElements; } else { - throw new Exception("Invalid \PhpSpreadsheet\RichText\ITextElement[] array passed."); + throw new Exception("Invalid \PhpOffice\PhpSpreadsheet\RichText\ITextElement[] array passed."); } return $this; diff --git a/src/PhpSpreadsheet/RichText/ITextElement.php b/src/PhpSpreadsheet/RichText/ITextElement.php index 749c2567..c2d36825 100644 --- a/src/PhpSpreadsheet/RichText/ITextElement.php +++ b/src/PhpSpreadsheet/RichText/ITextElement.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\RichText; +namespace PhpOffice\PhpSpreadsheet\RichText; /** * This library is free software; you can redistribute it and/or @@ -42,7 +42,7 @@ interface ITextElement /** * Get font * - * @return \PhpSpreadsheet\Style\Font + * @return \PhpOffice\PhpSpreadsheet\Style\Font */ public function getFont(); diff --git a/src/PhpSpreadsheet/RichText/Run.php b/src/PhpSpreadsheet/RichText/Run.php index ab059340..01150e59 100644 --- a/src/PhpSpreadsheet/RichText/Run.php +++ b/src/PhpSpreadsheet/RichText/Run.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\RichText; +namespace PhpOffice\PhpSpreadsheet\RichText; /** * This library is free software; you can redistribute it and/or @@ -27,7 +27,7 @@ class Run extends TextElement implements ITextElement /** * Font * - * @var \PhpSpreadsheet\Style\Font + * @var \PhpOffice\PhpSpreadsheet\Style\Font */ private $font; @@ -40,13 +40,13 @@ class Run extends TextElement implements ITextElement { // Initialise variables $this->setText($pText); - $this->font = new \PhpSpreadsheet\Style\Font(); + $this->font = new \PhpOffice\PhpSpreadsheet\Style\Font(); } /** * Get font * - * @return \PhpSpreadsheet\Style\Font + * @return \PhpOffice\PhpSpreadsheet\Style\Font */ public function getFont() { @@ -56,11 +56,11 @@ class Run extends TextElement implements ITextElement /** * Set font * - * @param \PhpSpreadsheet\Style\Font $pFont Font - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Style\Font $pFont Font + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return ITextElement */ - public function setFont(\PhpSpreadsheet\Style\Font $pFont = null) + public function setFont(\PhpOffice\PhpSpreadsheet\Style\Font $pFont = null) { $this->font = $pFont; diff --git a/src/PhpSpreadsheet/RichText/TextElement.php b/src/PhpSpreadsheet/RichText/TextElement.php index f7789930..761ee273 100644 --- a/src/PhpSpreadsheet/RichText/TextElement.php +++ b/src/PhpSpreadsheet/RichText/TextElement.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\RichText; +namespace PhpOffice\PhpSpreadsheet\RichText; /** * This library is free software; you can redistribute it and/or @@ -68,7 +68,7 @@ class TextElement implements ITextElement /** * Get font * - * @return \PhpSpreadsheet\Style\Font + * @return \PhpOffice\PhpSpreadsheet\Style\Font */ public function getFont() { diff --git a/src/PhpSpreadsheet/Settings.php b/src/PhpSpreadsheet/Settings.php index ca52de89..aa4a464d 100644 --- a/src/PhpSpreadsheet/Settings.php +++ b/src/PhpSpreadsheet/Settings.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -28,7 +28,7 @@ class Settings { /** constants */ /** Available Zip library classes */ - const PCLZIP = \PhpSpreadsheet\Shared\ZipArchive::class; + const PCLZIP = \PhpOffice\PhpSpreadsheet\Shared\ZipArchive::class; const ZIPARCHIVE = \ZipArchive::class; /** Optional Chart Rendering libraries */ @@ -101,7 +101,7 @@ class Settings * Set the Zip handler Class that PhpSpreadsheet should use for Zip file management (PCLZip or ZipArchive) * * @param string $zipClass The Zip handler class that PhpSpreadsheet should use for Zip file management - * e.g. \PhpSpreadsheet\Settings::PCLZip or \PhpSpreadsheet\Settings::ZipArchive + * e.g. \PhpOffice\PhpSpreadsheet\Settings::PCLZip or \PhpOffice\PhpSpreadsheet\Settings::ZipArchive * @return bool Success or failure */ public static function setZipClass($zipClass) @@ -122,7 +122,7 @@ class Settings * * @return string Name of the Zip handler Class that PhpSpreadsheet is configured to use * for Zip file management - * e.g. \PhpSpreadsheet\Settings::PCLZip or \PhpSpreadsheet\Settings::ZipArchive + * e.g. \PhpOffice\PhpSpreadsheet\Settings::PCLZip or \PhpOffice\PhpSpreadsheet\Settings::ZipArchive */ public static function getZipClass() { @@ -176,7 +176,7 @@ class Settings * Set details of the external library that PhpSpreadsheet should use for rendering charts * * @param string $libraryName Internal reference name of the library - * e.g. \PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH + * e.g. \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH * @param string $libraryBaseDir Directory path to the library's base folder * * @return bool Success or failure @@ -194,7 +194,7 @@ class Settings * Identify to PhpSpreadsheet the external library to use for rendering charts * * @param string $libraryName Internal reference name of the library - * e.g. \PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH + * e.g. \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH * * @return bool Success or failure */ @@ -229,7 +229,7 @@ class Settings * * @return string|null Internal reference name of the Chart Rendering Library that PhpSpreadsheet is * currently configured to use - * e.g. \PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH + * e.g. \PhpOffice\PhpSpreadsheet\Settings::CHART_RENDERER_JPGRAPH */ public static function getChartRendererName() { @@ -251,9 +251,9 @@ class Settings * Set details of the external library that PhpSpreadsheet should use for rendering PDF files * * @param string $libraryName Internal reference name of the library - * e.g. \PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, - * \PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF - * or \PhpSpreadsheet\Settings::PDF_RENDERER_MPDF + * e.g. \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, + * \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF + * or \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF * @param string $libraryBaseDir Directory path to the library's base folder * * @return bool Success or failure @@ -271,9 +271,9 @@ class Settings * Identify to PhpSpreadsheet the external library to use for rendering PDF files * * @param string $libraryName Internal reference name of the library - * e.g. \PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, - * \PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF - * or \PhpSpreadsheet\Settings::PDF_RENDERER_MPDF + * e.g. \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, + * \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF + * or \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF * * @return bool Success or failure */ @@ -308,9 +308,9 @@ class Settings * * @return string|null Internal reference name of the PDF Rendering Library that PhpSpreadsheet is * currently configured to use - * e.g. \PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, - * \PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF - * or \PhpSpreadsheet\Settings::PDF_RENDERER_MPDF + * e.g. \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_TCPDF, + * \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_DOMPDF + * or \PhpOffice\PhpSpreadsheet\Settings::PDF_RENDERER_MPDF */ public static function getPdfRendererName() { diff --git a/src/PhpSpreadsheet/Shared/CodePage.php b/src/PhpSpreadsheet/Shared/CodePage.php index 4acac50a..e1bfe316 100644 --- a/src/PhpSpreadsheet/Shared/CodePage.php +++ b/src/PhpSpreadsheet/Shared/CodePage.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -31,7 +31,7 @@ class CodePage * and mbstring understands * * @param int $codePage Microsoft Code Page Indentifier - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return string Code Page Name */ public static function numberToName($codePage = 1252) @@ -42,7 +42,7 @@ class CodePage case 437: return 'CP437'; // OEM US case 720: - throw new \PhpSpreadsheet\Exception('Code page 720 not supported.'); // OEM Arabic + throw new \PhpOffice\PhpSpreadsheet\Exception('Code page 720 not supported.'); // OEM Arabic case 737: return 'CP737'; // OEM Greek case 775: @@ -144,12 +144,12 @@ class CodePage case 32768: return 'MAC'; // Apple Roman case 32769: - throw new \PhpSpreadsheet\Exception('Code page 32769 not supported.'); // ANSI Latin I (BIFF2-BIFF3) + throw new \PhpOffice\PhpSpreadsheet\Exception('Code page 32769 not supported.'); // ANSI Latin I (BIFF2-BIFF3) case 65000: return 'UTF-7'; // Unicode (UTF-7) case 65001: return 'UTF-8'; // Unicode (UTF-8) } - throw new \PhpSpreadsheet\Exception('Unknown codepage: ' . $codePage); + throw new \PhpOffice\PhpSpreadsheet\Exception('Unknown codepage: ' . $codePage); } } diff --git a/src/PhpSpreadsheet/Shared/Date.php b/src/PhpSpreadsheet/Shared/Date.php index f5333aa1..e6a45825 100644 --- a/src/PhpSpreadsheet/Shared/Date.php +++ b/src/PhpSpreadsheet/Shared/Date.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -316,10 +316,10 @@ class Date /** * Is a given cell a date/time? * - * @param \PhpSpreadsheet\Cell $pCell + * @param \PhpOffice\PhpSpreadsheet\Cell $pCell * @return bool */ - public static function isDateTime(\PhpSpreadsheet\Cell $pCell) + public static function isDateTime(\PhpOffice\PhpSpreadsheet\Cell $pCell) { return self::isDateTimeFormat( $pCell->getWorksheet()->getStyle( @@ -331,10 +331,10 @@ class Date /** * Is a given number format a date/time? * - * @param \PhpSpreadsheet\Style\NumberFormat $pFormat + * @param \PhpOffice\PhpSpreadsheet\Style\NumberFormat $pFormat * @return bool */ - public static function isDateTimeFormat(\PhpSpreadsheet\Style\NumberFormat $pFormat) + public static function isDateTimeFormat(\PhpOffice\PhpSpreadsheet\Style\NumberFormat $pFormat) { return self::isDateTimeFormatCode($pFormat->getFormatCode()); } @@ -349,7 +349,7 @@ class Date */ public static function isDateTimeFormatCode($pFormatCode = '') { - if (strtolower($pFormatCode) === strtolower(\PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL)) { + if (strtolower($pFormatCode) === strtolower(\PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_GENERAL)) { // "General" contains an epoch letter 'e', so we trap for it explicitly here (case-insensitive check) return false; } @@ -361,28 +361,28 @@ class Date // Switch on formatcode switch ($pFormatCode) { // Explicitly defined date formats - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DDMMYYYY: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DMYSLASH: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DMYMINUS: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DMMINUS: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_MYMINUS: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME1: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME2: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME3: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME5: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME6: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME7: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME8: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDDSLASH: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX14: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX16: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX17: - case \PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX22: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDD2: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DDMMYYYY: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DMYSLASH: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DMYMINUS: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DMMINUS: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_MYMINUS: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_DATETIME: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME1: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME2: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME3: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME4: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME5: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME6: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME7: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_TIME8: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_YYYYMMDDSLASH: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX14: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX15: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX16: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX17: + case \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_DATE_XLSX22: return true; } @@ -429,15 +429,15 @@ class Date return false; } - $dateValueNew = \PhpSpreadsheet\Calculation\DateTime::DATEVALUE($dateValue); + $dateValueNew = \PhpOffice\PhpSpreadsheet\Calculation\DateTime::DATEVALUE($dateValue); - if ($dateValueNew === \PhpSpreadsheet\Calculation\Functions::VALUE()) { + if ($dateValueNew === \PhpOffice\PhpSpreadsheet\Calculation\Functions::VALUE()) { return false; } if (strpos($dateValue, ':') !== false) { - $timeValue = \PhpSpreadsheet\Calculation\DateTime::TIMEVALUE($dateValue); - if ($timeValue === \PhpSpreadsheet\Calculation\Functions::VALUE()) { + $timeValue = \PhpOffice\PhpSpreadsheet\Calculation\DateTime::TIMEVALUE($dateValue); + if ($timeValue === \PhpOffice\PhpSpreadsheet\Calculation\Functions::VALUE()) { return false; } $dateValueNew += $timeValue; diff --git a/src/PhpSpreadsheet/Shared/Drawing.php b/src/PhpSpreadsheet/Shared/Drawing.php index 6afbdf89..b8b60a41 100644 --- a/src/PhpSpreadsheet/Shared/Drawing.php +++ b/src/PhpSpreadsheet/Shared/Drawing.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -58,22 +58,22 @@ class Drawing * This gives a conversion factor of 7. Also, we assume that pixels and font size are proportional. * * @param int $pValue Value in pixels - * @param \PhpSpreadsheet\Style\Font $pDefaultFont Default font of the workbook + * @param \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont Default font of the workbook * @return int Value in cell dimension */ - public static function pixelsToCellDimension($pValue, \PhpSpreadsheet\Style\Font $pDefaultFont) + public static function pixelsToCellDimension($pValue, \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont) { // Font name and size $name = $pDefaultFont->getName(); $size = $pDefaultFont->getSize(); - if (isset(\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size])) { + if (isset(\PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size])) { // Exact width can be determined - $colWidth = $pValue * \PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['width'] / \PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['px']; + $colWidth = $pValue * \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['width'] / \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['px']; } else { // We don't have data for this particular font and size, use approximation by // extrapolating from Calibri 11 - $colWidth = $pValue * 11 * \PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['width'] / \PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['px'] / $size; + $colWidth = $pValue * 11 * \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['width'] / \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['px'] / $size; } return $colWidth; @@ -83,22 +83,22 @@ class Drawing * Convert column width from (intrinsic) Excel units to pixels * * @param float $pValue Value in cell dimension - * @param \PhpSpreadsheet\Style\Font $pDefaultFont Default font of the workbook + * @param \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont Default font of the workbook * @return int Value in pixels */ - public static function cellDimensionToPixels($pValue, \PhpSpreadsheet\Style\Font $pDefaultFont) + public static function cellDimensionToPixels($pValue, \PhpOffice\PhpSpreadsheet\Style\Font $pDefaultFont) { // Font name and size $name = $pDefaultFont->getName(); $size = $pDefaultFont->getSize(); - if (isset(\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size])) { + if (isset(\PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size])) { // Exact width can be determined - $colWidth = $pValue * \PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['px'] / \PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['width']; + $colWidth = $pValue * \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['px'] / \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths[$name][$size]['width']; } else { // We don't have data for this particular font and size, use approximation by // extrapolating from Calibri 11 - $colWidth = $pValue * $size * \PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['px'] / \PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['width'] / 11; + $colWidth = $pValue * $size * \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['px'] / \PhpOffice\PhpSpreadsheet\Shared\Font::$defaultColumnWidths['Calibri'][11]['width'] / 11; } // Round pixels to closest integer diff --git a/src/PhpSpreadsheet/Shared/Escher.php b/src/PhpSpreadsheet/Shared/Escher.php index 3a233905..35a01387 100644 --- a/src/PhpSpreadsheet/Shared/Escher.php +++ b/src/PhpSpreadsheet/Shared/Escher.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Escher/DgContainer.php b/src/PhpSpreadsheet/Shared/Escher/DgContainer.php index acc17b2f..94f7c1b3 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DgContainer.php +++ b/src/PhpSpreadsheet/Shared/Escher/DgContainer.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Escher; +namespace PhpOffice\PhpSpreadsheet\Shared\Escher; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php b/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php index 492d07b1..7086c868 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php +++ b/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Escher\DgContainer; +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,7 +29,7 @@ class SpgrContainer /** * Parent Shape Group Container * - * @var \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer + * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer */ private $parent; @@ -43,7 +43,7 @@ class SpgrContainer /** * Set parent Shape Group Container * - * @param \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer $parent + * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer $parent */ public function setParent($parent) { @@ -53,7 +53,7 @@ class SpgrContainer /** * Get the parent Shape Group Container if any * - * @return \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer|null + * @return \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer|null */ public function getParent() { diff --git a/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php b/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php index bd1e396c..0add0cac 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php +++ b/src/PhpSpreadsheet/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer; +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,7 +29,7 @@ class SpContainer /** * Parent Shape Group Container * - * @var \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer + * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer */ private $parent; @@ -113,7 +113,7 @@ class SpContainer /** * Set parent Shape Group Container * - * @param \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer $parent + * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer $parent */ public function setParent($parent) { @@ -123,7 +123,7 @@ class SpContainer /** * Get the parent Shape Group Container * - * @return \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer + * @return \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer */ public function getParent() { @@ -378,7 +378,7 @@ class SpContainer $nestingLevel = 0; $parent = $this->getParent(); - while ($parent instanceof \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer) { + while ($parent instanceof \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer) { ++$nestingLevel; $parent = $parent->getParent(); } diff --git a/src/PhpSpreadsheet/Shared/Escher/DggContainer.php b/src/PhpSpreadsheet/Shared/Escher/DggContainer.php index 3b573661..e0397233 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DggContainer.php +++ b/src/PhpSpreadsheet/Shared/Escher/DggContainer.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Escher; +namespace PhpOffice\PhpSpreadsheet\Shared\Escher; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php b/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php index 8974d52f..f21f7bf5 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php +++ b/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Escher\DggContainer; +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php b/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php index 382f1c6d..14db9d06 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php +++ b/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer; +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -40,7 +40,7 @@ class BSE /** * The parent BLIP Store Entry Container * - * @var \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer + * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer */ private $parent; @@ -61,7 +61,7 @@ class BSE /** * Set parent BLIP Store Entry Container * - * @param \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer $parent + * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer $parent */ public function setParent($parent) { diff --git a/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php b/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php index c318eb53..265ddcaa 100644 --- a/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php +++ b/src/PhpSpreadsheet/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE; +namespace PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,7 +29,7 @@ class Blip /** * The parent BSE * - * @var \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE + * @var \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE */ private $parent; @@ -63,7 +63,7 @@ class Blip /** * Set parent BSE * - * @param \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE $parent + * @param \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE $parent */ public function setParent($parent) { @@ -73,7 +73,7 @@ class Blip /** * Get parent BSE * - * @return \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE $parent + * @return \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE $parent */ public function getParent() { diff --git a/src/PhpSpreadsheet/Shared/Excel5.php b/src/PhpSpreadsheet/Shared/Excel5.php index 04c8e48c..c3df847f 100644 --- a/src/PhpSpreadsheet/Shared/Excel5.php +++ b/src/PhpSpreadsheet/Shared/Excel5.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -31,7 +31,7 @@ class Excel5 * x is the width in intrinsic Excel units (measuring width in number of normal characters) * This holds for Arial 10 * - * @param \PhpSpreadsheet\Worksheet $sheet The sheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet The sheet * @param string $col The column * @return int The width in pixels */ @@ -47,15 +47,15 @@ class Excel5 // then we have column dimension with explicit width $columnDimension = $columnDimensions[$col]; $width = $columnDimension->getWidth(); - $pixelWidth = \PhpSpreadsheet\Shared\Drawing::cellDimensionToPixels($width, $font); + $pixelWidth = \PhpOffice\PhpSpreadsheet\Shared\Drawing::cellDimensionToPixels($width, $font); } elseif ($sheet->getDefaultColumnDimension()->getWidth() != -1) { // then we have default column dimension with explicit width $defaultColumnDimension = $sheet->getDefaultColumnDimension(); $width = $defaultColumnDimension->getWidth(); - $pixelWidth = \PhpSpreadsheet\Shared\Drawing::cellDimensionToPixels($width, $font); + $pixelWidth = \PhpOffice\PhpSpreadsheet\Shared\Drawing::cellDimensionToPixels($width, $font); } else { // we don't even have any default column dimension. Width depends on default font - $pixelWidth = \PhpSpreadsheet\Shared\Font::getDefaultColumnWidthByFont($font, true); + $pixelWidth = \PhpOffice\PhpSpreadsheet\Shared\Font::getDefaultColumnWidthByFont($font, true); } // now find the effective column width in pixels @@ -73,7 +73,7 @@ class Excel5 * the relationship is: y = 4/3x. If the height hasn't been set by the user we * use the default value. If the row is hidden we use a value of zero. * - * @param \PhpSpreadsheet\Worksheet $sheet The sheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet The sheet * @param int $row The row index (1-based) * @return int The width in pixels */ @@ -94,11 +94,11 @@ class Excel5 // then we have a default row dimension with explicit height $defaultRowDimension = $sheet->getDefaultRowDimension(); $rowHeight = $defaultRowDimension->getRowHeight(); - $pixelRowHeight = \PhpSpreadsheet\Shared\Drawing::pointsToPixels($rowHeight); + $pixelRowHeight = \PhpOffice\PhpSpreadsheet\Shared\Drawing::pointsToPixels($rowHeight); } else { // we don't even have any default row dimension. Height depends on default font - $pointRowHeight = \PhpSpreadsheet\Shared\Font::getDefaultRowHeightByFont($font); - $pixelRowHeight = \PhpSpreadsheet\Shared\Font::fontSizeToPixels($pointRowHeight); + $pointRowHeight = \PhpOffice\PhpSpreadsheet\Shared\Font::getDefaultRowHeightByFont($font); + $pixelRowHeight = \PhpOffice\PhpSpreadsheet\Shared\Font::fontSizeToPixels($pointRowHeight); } // now find the effective row height in pixels @@ -115,22 +115,22 @@ class Excel5 * Get the horizontal distance in pixels between two anchors * The distanceX is found as sum of all the spanning columns widths minus correction for the two offsets * - * @param \PhpSpreadsheet\Worksheet $sheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet * @param string $startColumn * @param int $startOffsetX Offset within start cell measured in 1/1024 of the cell width * @param string $endColumn * @param int $endOffsetX Offset within end cell measured in 1/1024 of the cell width * @return int Horizontal measured in pixels */ - public static function getDistanceX(\PhpSpreadsheet\Worksheet $sheet, $startColumn = 'A', $startOffsetX = 0, $endColumn = 'A', $endOffsetX = 0) + public static function getDistanceX(\PhpOffice\PhpSpreadsheet\Worksheet $sheet, $startColumn = 'A', $startOffsetX = 0, $endColumn = 'A', $endOffsetX = 0) { $distanceX = 0; // add the widths of the spanning columns - $startColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($startColumn) - 1; // 1-based - $endColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($endColumn) - 1; // 1-based + $startColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($startColumn) - 1; // 1-based + $endColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($endColumn) - 1; // 1-based for ($i = $startColumnIndex; $i <= $endColumnIndex; ++$i) { - $distanceX += self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($i)); + $distanceX += self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($i)); } // correct for offsetX in startcell @@ -146,14 +146,14 @@ class Excel5 * Get the vertical distance in pixels between two anchors * The distanceY is found as sum of all the spanning rows minus two offsets * - * @param \PhpSpreadsheet\Worksheet $sheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet * @param int $startRow (1-based) * @param int $startOffsetY Offset within start cell measured in 1/256 of the cell height * @param int $endRow (1-based) * @param int $endOffsetY Offset within end cell measured in 1/256 of the cell height * @return int Vertical distance measured in pixels */ - public static function getDistanceY(\PhpSpreadsheet\Worksheet $sheet, $startRow = 1, $startOffsetY = 0, $endRow = 1, $endOffsetY = 0) + public static function getDistanceY(\PhpOffice\PhpSpreadsheet\Worksheet $sheet, $startRow = 1, $startOffsetY = 0, $endRow = 1, $endOffsetY = 0) { $distanceY = 0; @@ -215,7 +215,7 @@ class Excel5 * W is the width of the cell * H is the height of the cell * - * @param \PhpSpreadsheet\Worksheet $sheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet * @param string $coordinates E.g. 'A1' * @param int $offsetX Horizontal offset in pixels * @param int $offsetY Vertical offset in pixels @@ -225,8 +225,8 @@ class Excel5 */ public static function oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height) { - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($coordinates); - $col_start = \PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; + list($column, $row) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($coordinates); + $col_start = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; $row_start = $row - 1; $x1 = $offsetX; @@ -237,7 +237,7 @@ class Excel5 $row_end = $row_start; // Row containing bottom right corner of object // Zero the specified offset if greater than the cell dimensions - if ($x1 >= self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start))) { + if ($x1 >= self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_start))) { $x1 = 0; } if ($y1 >= self::sizeRow($sheet, $row_start + 1)) { @@ -248,8 +248,8 @@ class Excel5 $height = $height + $y1 - 1; // Subtract the underlying cell widths to find the end cell of the image - while ($width >= self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end))) { - $width -= self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)); + while ($width >= self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end))) { + $width -= self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)); ++$col_end; } @@ -261,10 +261,10 @@ class Excel5 // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell // with zero height or width. - if (self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) == 0) { + if (self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) == 0) { return; } - if (self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) == 0) { + if (self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) == 0) { return; } if (self::sizeRow($sheet, $row_start + 1) == 0) { @@ -275,13 +275,13 @@ class Excel5 } // Convert the pixel values to the percentage value expected by Excel - $x1 = $x1 / self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) * 1024; + $x1 = $x1 / self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) * 1024; $y1 = $y1 / self::sizeRow($sheet, $row_start + 1) * 256; - $x2 = ($width + 1) / self::sizeCol($sheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object + $x2 = ($width + 1) / self::sizeCol($sheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object $y2 = ($height + 1) / self::sizeRow($sheet, $row_end + 1) * 256; // Distance to bottom of object - $startCoordinates = \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start) . ($row_start + 1); - $endCoordinates = \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end) . ($row_end + 1); + $startCoordinates = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_start) . ($row_start + 1); + $endCoordinates = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end) . ($row_end + 1); $twoAnchor = [ 'startCoordinates' => $startCoordinates, diff --git a/src/PhpSpreadsheet/Shared/File.php b/src/PhpSpreadsheet/Shared/File.php index ebb0e7f3..9e6047a2 100644 --- a/src/PhpSpreadsheet/Shared/File.php +++ b/src/PhpSpreadsheet/Shared/File.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -70,7 +70,7 @@ class File $zipFile = substr($pFilename, 6, strpos($pFilename, '#') - 6); $archiveFile = substr($pFilename, strpos($pFilename, '#') + 1); - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $zip = new $zipClass(); if ($zip->open($zipFile) === true) { $returnValue = ($zip->getFromName($archiveFile) !== false); diff --git a/src/PhpSpreadsheet/Shared/Font.php b/src/PhpSpreadsheet/Shared/Font.php index 3c029ac0..2b399818 100644 --- a/src/PhpSpreadsheet/Shared/Font.php +++ b/src/PhpSpreadsheet/Shared/Font.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -234,16 +234,16 @@ class Font /** * Calculate an (approximate) OpenXML column width, based on font size and text contained * - * @param \PhpSpreadsheet\Style\Font $font Font object - * @param \PhpSpreadsheet\RichText|string $cellText Text to calculate width + * @param \PhpOffice\PhpSpreadsheet\Style\Font $font Font object + * @param \PhpOffice\PhpSpreadsheet\RichText|string $cellText Text to calculate width * @param int $rotation Rotation angle - * @param \PhpSpreadsheet\Style\Font|null $defaultFont Font object + * @param \PhpOffice\PhpSpreadsheet\Style\Font|null $defaultFont Font object * @return int Column width */ - public static function calculateColumnWidth(\PhpSpreadsheet\Style\Font $font, $cellText = '', $rotation = 0, \PhpSpreadsheet\Style\Font $defaultFont = null) + public static function calculateColumnWidth(\PhpOffice\PhpSpreadsheet\Style\Font $font, $cellText = '', $rotation = 0, \PhpOffice\PhpSpreadsheet\Style\Font $defaultFont = null) { // If it is rich text, use plain text - if ($cellText instanceof \PhpSpreadsheet\RichText) { + if ($cellText instanceof \PhpOffice\PhpSpreadsheet\RichText) { $cellText = $cellText->getPlainText(); } @@ -266,7 +266,7 @@ class Font // Width of text in pixels excl. padding // and addition because Excel adds some padding, just use approx width of 'n' glyph $columnWidth = self::getTextWidthPixelsExact($cellText, $font, $rotation) + $columnWidthAdjust; - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { $approximate = true; } } @@ -289,15 +289,15 @@ class Font * Get GD text width in pixels for a string of text in a certain font at a certain rotation angle * * @param string $text - * @param \PhpSpreadsheet\Style\Font + * @param \PhpOffice\PhpSpreadsheet\Style\Font * @param int $rotation - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return int */ - public static function getTextWidthPixelsExact($text, \PhpSpreadsheet\Style\Font $font, $rotation = 0) + public static function getTextWidthPixelsExact($text, \PhpOffice\PhpSpreadsheet\Style\Font $font, $rotation = 0) { if (!function_exists('imagettfbbox')) { - throw new \PhpSpreadsheet\Exception('GD library needs to be enabled'); + throw new \PhpOffice\PhpSpreadsheet\Exception('GD library needs to be enabled'); } // font size should really be supplied in pixels in GD2, @@ -321,11 +321,11 @@ class Font * Get approximate width in pixels for a string of text in a certain font at a certain rotation angle * * @param string $columnText - * @param \PhpSpreadsheet\Style\Font $font + * @param \PhpOffice\PhpSpreadsheet\Style\Font $font * @param int $rotation * @return int Text width in pixels (no padding added) */ - public static function getTextWidthPixelsApprox($columnText, \PhpSpreadsheet\Style\Font $font = null, $rotation = 0) + public static function getTextWidthPixelsApprox($columnText, \PhpOffice\PhpSpreadsheet\Style\Font $font = null, $rotation = 0) { $fontName = $font->getName(); $fontSize = $font->getSize(); @@ -409,13 +409,13 @@ class Font /** * Returns the font path given the font * - * @param \PhpSpreadsheet\Style\Font $font + * @param \PhpOffice\PhpSpreadsheet\Style\Font $font * @return string Path to TrueType font file */ public static function getTrueTypeFontFileFromFont($font) { if (!file_exists(self::$trueTypeFontPath) || !is_dir(self::$trueTypeFontPath)) { - throw new \PhpSpreadsheet\Exception('Valid directory to TrueType Font files not specified'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Valid directory to TrueType Font files not specified'); } $name = $font->getName(); @@ -504,7 +504,7 @@ class Font ); break; default: - throw new \PhpSpreadsheet\Exception('Unknown font name "' . $name . '". Cannot map to TrueType font file'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Unknown font name "' . $name . '". Cannot map to TrueType font file'); break; } @@ -512,7 +512,7 @@ class Font // Check if file actually exists if (!file_exists($fontFile)) { - throw new \PhpSpreadsheet\Exception('TrueType Font file not found'); + throw new \PhpOffice\PhpSpreadsheet\Exception('TrueType Font file not found'); } return $fontFile; @@ -545,11 +545,11 @@ class Font * Get the effective column width for columns without a column dimension or column with width -1 * For example, for Calibri 11 this is 9.140625 (64 px) * - * @param \PhpSpreadsheet\Style\Font $font The workbooks default font + * @param \PhpOffice\PhpSpreadsheet\Style\Font $font The workbooks default font * @param bool $pPixels true = return column width in pixels, false = return in OOXML units * @return mixed Column width */ - public static function getDefaultColumnWidthByFont(\PhpSpreadsheet\Style\Font $font, $pPixels = false) + public static function getDefaultColumnWidthByFont(\PhpOffice\PhpSpreadsheet\Style\Font $font, $pPixels = false) { if (isset(self::$defaultColumnWidths[$font->getName()][$font->getSize()])) { // Exact width can be determined @@ -577,10 +577,10 @@ class Font * Get the effective row height for rows without a row dimension or rows with height -1 * For example, for Calibri 11 this is 15 points * - * @param \PhpSpreadsheet\Style\Font $font The workbooks default font + * @param \PhpOffice\PhpSpreadsheet\Style\Font $font The workbooks default font * @return float Row height in points */ - public static function getDefaultRowHeightByFont(\PhpSpreadsheet\Style\Font $font) + public static function getDefaultRowHeightByFont(\PhpOffice\PhpSpreadsheet\Style\Font $font) { switch ($font->getName()) { case 'Arial': diff --git a/src/PhpSpreadsheet/Shared/JAMA/CholeskyDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/CholeskyDecomposition.php index 2f1d1579..65152a57 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/CholeskyDecomposition.php +++ b/src/PhpSpreadsheet/Shared/JAMA/CholeskyDecomposition.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\JAMA; +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA; /** * Cholesky decomposition class @@ -71,7 +71,7 @@ class CholeskyDecomposition } } } else { - throw new \PhpSpreadsheet\Calculation\Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); } } // function __construct() @@ -134,13 +134,13 @@ class CholeskyDecomposition return new Matrix($X, $this->m, $nx); } else { - throw new \PhpSpreadsheet\Calculation\Exception(JAMAError(MatrixSPDException)); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(JAMAError(MatrixSPDException)); } } else { - throw new \PhpSpreadsheet\Calculation\Exception(JAMAError(MATRIX_DIMENSION_EXCEPTION)); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(JAMAError(MATRIX_DIMENSION_EXCEPTION)); } } else { - throw new \PhpSpreadsheet\Calculation\Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); } } // function solve() } diff --git a/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php index 932c66cb..ad69ec48 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php +++ b/src/PhpSpreadsheet/Shared/JAMA/EigenvalueDecomposition.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\JAMA; +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA; /** * Class to obtain eigenvalues and eigenvectors of a real matrix. diff --git a/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php index d5cbf950..73f15e33 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php +++ b/src/PhpSpreadsheet/Shared/JAMA/LUDecomposition.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\JAMA; +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA; /** * For an m-by-n matrix A with m >= n, the LU decomposition is an m-by-n @@ -116,7 +116,7 @@ class LUDecomposition } } } else { - throw new \PhpSpreadsheet\Calculation\Exception(Matrix::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(Matrix::ARGUMENT_TYPE_EXCEPTION); } } // function __construct() @@ -213,7 +213,7 @@ class LUDecomposition return $d; } else { - throw new \PhpSpreadsheet\Calculation\Exception(Matrix::MATRIX_DIMENSION_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(Matrix::MATRIX_DIMENSION_EXCEPTION); } } // function det() @@ -221,9 +221,9 @@ class LUDecomposition * Solve A*X = B * * @param $B A Matrix with as many rows as A and any number of columns. + * @throws \PhpOffice\PhpSpreadsheet\Calculation\Exception IllegalArgumentException Matrix row dimensions must agree. + * @throws \PhpOffice\PhpSpreadsheet\Calculation\Exception RuntimeException Matrix is singular. * @return X so that L*U*X = B(piv,:) - * @\PhpSpreadsheet\Calculation\Exception IllegalArgumentException Matrix row dimensions must agree. - * @\PhpSpreadsheet\Calculation\Exception RuntimeException Matrix is singular. */ public function solve($B) { @@ -254,10 +254,10 @@ class LUDecomposition return $X; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::MATRIX_SINGULAR_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::MATRIX_SINGULAR_EXCEPTION); } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::MATRIX_SQUARE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::MATRIX_SQUARE_EXCEPTION); } } } diff --git a/src/PhpSpreadsheet/Shared/JAMA/Matrix.php b/src/PhpSpreadsheet/Shared/JAMA/Matrix.php index ab1c5157..2c2687a6 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/Matrix.php +++ b/src/PhpSpreadsheet/Shared/JAMA/Matrix.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\JAMA; +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA; /* * Matrix class @@ -87,15 +87,15 @@ class Matrix } } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARRAY_LENGTH_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARRAY_LENGTH_EXCEPTION); } break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -165,12 +165,12 @@ class Matrix if ($i0 >= 0) { $m = $this->m - $i0; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } if ($j0 >= 0) { $n = $this->n - $j0; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } $R = new self($m, $n); for ($i = $i0; $i < $this->m; ++$i) { @@ -187,12 +187,12 @@ class Matrix if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { $m = $iF - $i0; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } if (($jF > $j0) && ($this->n >= $jF) && ($j0 >= 0)) { $n = $jF - $j0; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } $R = new self($m + 1, $n + 1); for ($i = $i0; $i <= $iF; ++$i) { @@ -209,12 +209,12 @@ class Matrix if (count($RL) > 0) { $m = count($RL); } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } if (count($CL) > 0) { $n = count($CL); } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } $R = new self($m, $n); for ($i = 0; $i < $m; ++$i) { @@ -231,12 +231,12 @@ class Matrix if (count($RL) > 0) { $m = count($RL); } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } if (count($CL) > 0) { $n = count($CL); } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } $R = new self($m, $n); for ($i = 0; $i < $m; ++$i) { @@ -253,12 +253,12 @@ class Matrix if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { $m = $iF - $i0; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } if (count($CL) > 0) { $n = count($CL); } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } $R = new self($m, $n); for ($i = $i0; $i < $iF; ++$i) { @@ -275,12 +275,12 @@ class Matrix if (count($RL) > 0) { $m = count($RL); } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } if (($jF >= $j0) && ($this->n >= $jF) && ($j0 >= 0)) { $n = $jF - $j0; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_BOUNDS_EXCEPTION); } $R = new self($m, $n + 1); for ($i = 0; $i < $m; ++$i) { @@ -292,11 +292,11 @@ class Matrix return $R; break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -313,10 +313,10 @@ class Matrix if (($this->m == $B->getRowDimension()) && ($this->n == $B->getColumnDimension())) { return true; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::MATRIX_DIMENSION_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::MATRIX_DIMENSION_EXCEPTION); } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } } // function checkMatrixDimensions() @@ -384,7 +384,7 @@ class Matrix return $this->getMatrix($i0, 0, $i0 + 1, $this->n); } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } } @@ -405,7 +405,7 @@ class Matrix return $this->getMatrix(0, $j0, $this->m, $j0 + 1); } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } } @@ -472,14 +472,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -491,7 +491,7 @@ class Matrix return $M; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -513,14 +513,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -530,23 +530,23 @@ class Matrix $value = $M->get($i, $j); if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); } if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { $value = trim($value, '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); } if ($validValues) { $this->A[$i][$j] += $value; } else { - $this->A[$i][$j] = \PhpSpreadsheet\Calculation\Functions::NAN(); + $this->A[$i][$j] = \PhpOffice\PhpSpreadsheet\Calculation\Functions::NAN(); } } } return $this; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -568,14 +568,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -587,7 +587,7 @@ class Matrix return $M; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -609,14 +609,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -626,23 +626,23 @@ class Matrix $value = $M->get($i, $j); if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); } if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { $value = trim($value, '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); } if ($validValues) { $this->A[$i][$j] -= $value; } else { - $this->A[$i][$j] = \PhpSpreadsheet\Calculation\Functions::NAN(); + $this->A[$i][$j] = \PhpOffice\PhpSpreadsheet\Calculation\Functions::NAN(); } } } return $this; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -665,14 +665,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -684,7 +684,7 @@ class Matrix return $M; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -707,14 +707,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -724,23 +724,23 @@ class Matrix $value = $M->get($i, $j); if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); } if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { $value = trim($value, '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); } if ($validValues) { $this->A[$i][$j] *= $value; } else { - $this->A[$i][$j] = \PhpSpreadsheet\Calculation\Functions::NAN(); + $this->A[$i][$j] = \PhpOffice\PhpSpreadsheet\Calculation\Functions::NAN(); } } } return $this; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -763,14 +763,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -780,11 +780,11 @@ class Matrix $value = $M->get($i, $j); if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); } if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { $value = trim($value, '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); } if ($validValues) { if ($value == 0) { @@ -794,14 +794,14 @@ class Matrix $M->set($i, $j, $this->A[$i][$j] / $value); } } else { - $M->set($i, $j, \PhpSpreadsheet\Calculation\Functions::NAN()); + $M->set($i, $j, \PhpOffice\PhpSpreadsheet\Calculation\Functions::NAN()); } } } return $M; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -824,14 +824,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -843,7 +843,7 @@ class Matrix return $M; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -866,14 +866,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -885,7 +885,7 @@ class Matrix return $M; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -908,14 +908,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -927,7 +927,7 @@ class Matrix return $M; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -949,7 +949,7 @@ class Matrix if ($args[0] instanceof self) { $B = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } if ($this->n == $B->m) { $C = new self($this->m, $B->n); @@ -969,7 +969,7 @@ class Matrix return $C; } else { - throw new \PhpSpreadsheet\Calculation\Exception(JAMAError(MatrixDimensionMismatch)); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(JAMAError(MatrixDimensionMismatch)); } break; case 'array': @@ -988,7 +988,7 @@ class Matrix return $C; } else { - throw new \PhpSpreadsheet\Calculation\Exception(JAMAError(MatrixDimensionMismatch)); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(JAMAError(MatrixDimensionMismatch)); } return $M; @@ -1024,11 +1024,11 @@ class Matrix return $C; break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -1050,14 +1050,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -1067,23 +1067,23 @@ class Matrix $value = $M->get($i, $j); if ((is_string($this->A[$i][$j])) && (strlen($this->A[$i][$j]) > 0) && (!is_numeric($this->A[$i][$j]))) { $this->A[$i][$j] = trim($this->A[$i][$j], '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($this->A[$i][$j]); } if ((is_string($value)) && (strlen($value) > 0) && (!is_numeric($value))) { $value = trim($value, '"'); - $validValues &= \PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); + $validValues &= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertToNumberIfFraction($value); } if ($validValues) { $this->A[$i][$j] = pow($this->A[$i][$j], $value); } else { - $this->A[$i][$j] = \PhpSpreadsheet\Calculation\Functions::NAN(); + $this->A[$i][$j] = \PhpOffice\PhpSpreadsheet\Calculation\Functions::NAN(); } } } return $this; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } @@ -1105,14 +1105,14 @@ class Matrix if ($args[0] instanceof self) { $M = $args[0]; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::ARGUMENT_TYPE_EXCEPTION); } break; case 'array': $M = new self($args[0]); break; default: - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); break; } $this->checkMatrixDimensions($M); @@ -1124,7 +1124,7 @@ class Matrix return $this; } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::POLYMORPHIC_ARGUMENT_EXCEPTION); } } diff --git a/src/PhpSpreadsheet/Shared/JAMA/QRDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/QRDecomposition.php index f22904b9..b2447040 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/QRDecomposition.php +++ b/src/PhpSpreadsheet/Shared/JAMA/QRDecomposition.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\JAMA; +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA; /** * For an m-by-n matrix A with m >= n, the QR decomposition is an m-by-n @@ -89,7 +89,7 @@ class QRDecomposition $this->Rdiag[$k] = -$nrm; } } else { - throw new \PhpSpreadsheet\Calculation\Exception(Matrix::ARGUMENT_TYPE_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(Matrix::ARGUMENT_TYPE_EXCEPTION); } } // function __construct() @@ -229,10 +229,10 @@ class QRDecomposition return $X->getMatrix(0, $this->n - 1, 0, $nx); } else { - throw new \PhpSpreadsheet\Calculation\Exception(self::MATRIX_RANK_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(self::MATRIX_RANK_EXCEPTION); } } else { - throw new \PhpSpreadsheet\Calculation\Exception(Matrix::MATRIX_DIMENSION_EXCEPTION); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(Matrix::MATRIX_DIMENSION_EXCEPTION); } } } diff --git a/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php b/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php index 55fb249e..3c53cd14 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php +++ b/src/PhpSpreadsheet/Shared/JAMA/SingularValueDecomposition.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\JAMA; +namespace PhpOffice\PhpSpreadsheet\Shared\JAMA; /** * For an m-by-n matrix A with m >= n, the singular value decomposition is diff --git a/src/PhpSpreadsheet/Shared/JAMA/utils/Maths.php b/src/PhpSpreadsheet/Shared/JAMA/utils/Maths.php index e92ee22c..f46c2e0b 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/utils/Maths.php +++ b/src/PhpSpreadsheet/Shared/JAMA/utils/Maths.php @@ -34,7 +34,7 @@ function hypot() { if (is_numeric($d)) { $s += pow($d, 2); } else { - throw new \PhpSpreadsheet\Calculation\Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); + throw new \PhpOffice\PhpSpreadsheet\Calculation\Exception(JAMAError(ARGUMENT_TYPE_EXCEPTION)); } } return sqrt($s); diff --git a/src/PhpSpreadsheet/Shared/OLE.php b/src/PhpSpreadsheet/Shared/OLE.php index 8c159b52..927ffdf7 100644 --- a/src/PhpSpreadsheet/Shared/OLE.php +++ b/src/PhpSpreadsheet/Shared/OLE.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +----------------------------------------------------------------------+ @@ -91,25 +91,25 @@ class OLE * * @acces public * @param string $file - * @throws \PhpSpreadsheet\Reader\Exception + * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception * @return bool true on success, PEAR_Error on failure */ public function read($file) { $fh = fopen($file, 'r'); if (!$fh) { - throw new \PhpSpreadsheet\Reader\Exception("Can't open file $file"); + throw new \PhpOffice\PhpSpreadsheet\Reader\Exception("Can't open file $file"); } $this->_file_handle = $fh; $signature = fread($fh, 8); if ("\xD0\xCF\x11\xE0\xA1\xB1\x1A\xE1" != $signature) { - throw new \PhpSpreadsheet\Reader\Exception("File doesn't seem to be an OLE container."); + throw new \PhpOffice\PhpSpreadsheet\Reader\Exception("File doesn't seem to be an OLE container."); } fseek($fh, 28); if (fread($fh, 2) != "\xFE\xFF") { // This shouldn't be a problem in practice - throw new \PhpSpreadsheet\Reader\Exception('Only Little-Endian encoding is supported.'); + throw new \PhpOffice\PhpSpreadsheet\Reader\Exception('Only Little-Endian encoding is supported.'); } // Size of blocks and short blocks in bytes $this->bigBlockSize = pow(2, self::_readInt2($fh)); @@ -189,7 +189,7 @@ class OLE /** * Returns a stream for use with fread() etc. External callers should - * use \PhpSpreadsheet\Shared\OLE\PPS\File::getStream(). + * use \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\File::getStream(). * @param int|PPS block id or PPS * @return resource read-only stream */ @@ -197,7 +197,7 @@ class OLE { static $isRegistered = false; if (!$isRegistered) { - stream_wrapper_register('ole-chainedblockstream', '\\PhpSpreadsheet\\Shared\\OLE\\ChainedBlockStream'); + stream_wrapper_register('ole-chainedblockstream', '\\PhpOffice\\PhpSpreadsheet\\Shared\\OLE\\ChainedBlockStream'); $isRegistered = true; } diff --git a/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php b/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php index 444203b7..37eb5c8f 100644 --- a/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php +++ b/src/PhpSpreadsheet/Shared/OLE/ChainedBlockStream.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\OLE; +namespace PhpOffice\PhpSpreadsheet\Shared\OLE; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS.php b/src/PhpSpreadsheet/Shared/OLE/PPS.php index 46b00e70..38fd2bce 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\OLE; +namespace PhpOffice\PhpSpreadsheet\Shared\OLE; /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +----------------------------------------------------------------------+ @@ -174,8 +174,8 @@ class PPS . "\xc0\x00\x00\x00" // 92 . "\x00\x00\x00\x46" // 96 // Seems to be ok only for Root . "\x00\x00\x00\x00" // 100 - . \PhpSpreadsheet\Shared\OLE::localDateToOLE($this->Time1st) // 108 - . \PhpSpreadsheet\Shared\OLE::localDateToOLE($this->Time2nd) // 116 + . \PhpOffice\PhpSpreadsheet\Shared\OLE::localDateToOLE($this->Time1st) // 108 + . \PhpOffice\PhpSpreadsheet\Shared\OLE::localDateToOLE($this->Time2nd) // 116 . pack('V', isset($this->startBlock) ? $this->startBlock : 0) // 120 . pack('V', $this->Size) // 124 . pack('V', 0); // 128 diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS/File.php b/src/PhpSpreadsheet/Shared/OLE/PPS/File.php index 2b7f77c4..6e674904 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS/File.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS/File.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\OLE\PPS; +namespace PhpOffice\PhpSpreadsheet\Shared\OLE\PPS; /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +----------------------------------------------------------------------+ @@ -27,7 +27,7 @@ namespace PhpSpreadsheet\Shared\OLE\PPS; * @author Xavier Noguer <xnoguer@php.net> * @category PhpSpreadsheet */ -class File extends \PhpSpreadsheet\Shared\OLE\PPS +class File extends \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS { /** * The constructor @@ -37,7 +37,7 @@ class File extends \PhpSpreadsheet\Shared\OLE\PPS */ public function __construct($name) { - parent::__construct(null, $name, \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_FILE, null, null, null, null, null, '', []); + parent::__construct(null, $name, \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_FILE, null, null, null, null, null, '', []); } /** diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php index c82f4089..052554c6 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\OLE\PPS; +namespace PhpOffice\PhpSpreadsheet\Shared\OLE\PPS; /* vim: set expandtab tabstop=4 shiftwidth=4: */ // +----------------------------------------------------------------------+ @@ -27,7 +27,7 @@ namespace PhpSpreadsheet\Shared\OLE\PPS; * @author Xavier Noguer <xnoguer@php.net> * @category PhpSpreadsheet */ -class Root extends \PhpSpreadsheet\Shared\OLE\PPS +class Root extends \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS { /** * Directory for temporary files @@ -42,9 +42,9 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS */ public function __construct($time_1st, $time_2nd, $raChild) { - $this->_tempDir = \PhpSpreadsheet\Shared\File::sysGetTempDir(); + $this->_tempDir = \PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir(); - parent::__construct(null, \PhpSpreadsheet\Shared\OLE::ascToUcs('Root Entry'), \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_ROOT, null, null, null, $time_1st, $time_2nd, null, $raChild); + parent::__construct(null, \PhpOffice\PhpSpreadsheet\Shared\OLE::ascToUcs('Root Entry'), \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_ROOT, null, null, null, $time_1st, $time_2nd, null, $raChild); } /** @@ -55,7 +55,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS * it will be used, but you have to close such stream by yourself. * * @param string|resource $filename The name of the file or stream where to save the OLE container. - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return bool true on success */ public function save($filename) @@ -74,22 +74,22 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $this->_FILEH_ = $filename; } elseif ($filename == '-' || $filename == '') { if ($this->tempDirectory === null) { - $this->tempDirectory = \PhpSpreadsheet\Shared\File::sysGetTempDir(); + $this->tempDirectory = \PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir(); } $this->_tmp_filename = tempnam($this->tempDirectory, 'OLE_PPS_Root'); $this->_FILEH_ = fopen($this->_tmp_filename, 'w+b'); if ($this->_FILEH_ == false) { - throw new \PhpSpreadsheet\Writer\Exception("Can't create temporary file."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Can't create temporary file."); } } else { $this->_FILEH_ = fopen($filename, 'wb'); } if ($this->_FILEH_ == false) { - throw new \PhpSpreadsheet\Writer\Exception("Can't open $filename. It may be in use or protected."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Can't open $filename. It may be in use or protected."); } // Make an array of PPS's (for Save) $aList = []; - \PhpSpreadsheet\Shared\OLE\PPS::_savePpsSetPnt($aList, [$this]); + \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS::_savePpsSetPnt($aList, [$this]); // calculate values for header list($iSBDcnt, $iBBcnt, $iPPScnt) = $this->_calcSize($aList); //, $rhInfo); // Save Header @@ -126,9 +126,9 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $iSBcnt = 0; $iCount = count($raList); for ($i = 0; $i < $iCount; ++$i) { - if ($raList[$i]->Type == \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_FILE) { + if ($raList[$i]->Type == \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_FILE) { $raList[$i]->Size = $raList[$i]->getDataLen(); - if ($raList[$i]->Size < \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) { + if ($raList[$i]->Size < \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) { $iSBcnt += floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE) ? 1 : 0); } else { @@ -138,12 +138,12 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS } } $iSmallLen = $iSBcnt * $this->_SMALL_BLOCK_SIZE; - $iSlCnt = floor($this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE); + $iSlCnt = floor($this->_BIG_BLOCK_SIZE / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE); $iSBDcnt = floor($iSBcnt / $iSlCnt) + (($iSBcnt % $iSlCnt) ? 1 : 0); $iBBcnt += (floor($iSmallLen / $this->_BIG_BLOCK_SIZE) + (($iSmallLen % $this->_BIG_BLOCK_SIZE) ? 1 : 0)); $iCnt = count($raList); - $iBdCnt = $this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_PPS_SIZE; + $iBdCnt = $this->_BIG_BLOCK_SIZE / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_SIZE; $iPPScnt = (floor($iCnt / $iBdCnt) + (($iCnt % $iBdCnt) ? 1 : 0)); return [$iSBDcnt, $iBBcnt, $iPPScnt]; @@ -175,8 +175,8 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $FILE = $this->_FILEH_; // Calculate Basic Setting - $iBlCnt = $this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; - $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / \PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; + $iBlCnt = $this->_BIG_BLOCK_SIZE / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; + $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; $iBdExL = 0; $iAll = $iBBcnt + $iPPScnt + $iSBDcnt; @@ -244,7 +244,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS } /** - * Saving big data (PPS's with data bigger than \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) + * Saving big data (PPS's with data bigger than \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) * * @param int $iStBlk * @param array &$raList Reference to array of PPS's @@ -256,9 +256,9 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS // cycle through PPS's $iCount = count($raList); for ($i = 0; $i < $iCount; ++$i) { - if ($raList[$i]->Type != \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_DIR) { + if ($raList[$i]->Type != \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_DIR) { $raList[$i]->Size = $raList[$i]->getDataLen(); - if (($raList[$i]->Size >= \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) || (($raList[$i]->Type == \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_ROOT) && isset($raList[$i]->_data))) { + if (($raList[$i]->Size >= \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) || (($raList[$i]->Type == \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_ROOT) && isset($raList[$i]->_data))) { fwrite($FILE, $raList[$i]->_data); if ($raList[$i]->Size % $this->_BIG_BLOCK_SIZE) { @@ -275,7 +275,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS } /** - * get small data (PPS's with data smaller than \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) + * get small data (PPS's with data smaller than \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) * * @param array &$raList Reference to array of PPS's */ @@ -288,11 +288,11 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS $iCount = count($raList); for ($i = 0; $i < $iCount; ++$i) { // Make SBD, small data string - if ($raList[$i]->Type == \PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_FILE) { + if ($raList[$i]->Type == \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_TYPE_FILE) { if ($raList[$i]->Size <= 0) { continue; } - if ($raList[$i]->Size < \PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) { + if ($raList[$i]->Size < \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_DATA_SIZE_SMALL) { $iSmbCnt = floor($raList[$i]->Size / $this->_SMALL_BLOCK_SIZE) + (($raList[$i]->Size % $this->_SMALL_BLOCK_SIZE) ? 1 : 0); // Add to SBD @@ -313,7 +313,7 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS } } } - $iSbCnt = floor($this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE); + $iSbCnt = floor($this->_BIG_BLOCK_SIZE / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE); if ($iSmBlk % $iSbCnt) { $iB = $iSbCnt - ($iSmBlk % $iSbCnt); for ($i = 0; $i < $iB; ++$i) { @@ -338,9 +338,9 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS } // Adjust for Block $iCnt = count($raList); - $iBCnt = $this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_PPS_SIZE; + $iBCnt = $this->_BIG_BLOCK_SIZE / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_SIZE; if ($iCnt % $iBCnt) { - fwrite($this->_FILEH_, str_repeat("\x00", ($iBCnt - ($iCnt % $iBCnt)) * \PhpSpreadsheet\Shared\OLE::OLE_PPS_SIZE)); + fwrite($this->_FILEH_, str_repeat("\x00", ($iBCnt - ($iCnt % $iBCnt)) * \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_PPS_SIZE)); } } @@ -355,8 +355,8 @@ class Root extends \PhpSpreadsheet\Shared\OLE\PPS { $FILE = $this->_FILEH_; // Calculate Basic Setting - $iBbCnt = $this->_BIG_BLOCK_SIZE / \PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; - $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / \PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; + $iBbCnt = $this->_BIG_BLOCK_SIZE / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; + $i1stBdL = ($this->_BIG_BLOCK_SIZE - 0x4C) / \PhpOffice\PhpSpreadsheet\Shared\OLE::OLE_LONG_INT_SIZE; $iBdExL = 0; $iAll = $iBsize + $iPpsCnt + $iSbdSize; diff --git a/src/PhpSpreadsheet/Shared/OLERead.php b/src/PhpSpreadsheet/Shared/OLERead.php index 37c852b0..2d0a7986 100644 --- a/src/PhpSpreadsheet/Shared/OLERead.php +++ b/src/PhpSpreadsheet/Shared/OLERead.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /* * PhpSpreadsheet @@ -71,13 +71,13 @@ class OLERead * Read the file * * @param $sFileName string Filename - * @throws \PhpSpreadsheet\Reader\Exception + * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception */ public function read($sFileName) { // Check if file exists and is readable if (!is_readable($sFileName)) { - throw new \PhpSpreadsheet\Reader\Exception('Could not open ' . $sFileName . ' for reading! File does not exist, or it is not readable.'); + throw new \PhpOffice\PhpSpreadsheet\Reader\Exception('Could not open ' . $sFileName . ' for reading! File does not exist, or it is not readable.'); } // Get the file identifier @@ -86,7 +86,7 @@ class OLERead // Check OLE identifier if ($this->data != self::IDENTIFIER_OLE) { - throw new \PhpSpreadsheet\Reader\Exception('The filename ' . $sFileName . ' is not recognised as an OLE file'); + throw new \PhpOffice\PhpSpreadsheet\Reader\Exception('The filename ' . $sFileName . ' is not recognised as an OLE file'); } // Get the file data diff --git a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php index 5621c249..4f80f459 100644 --- a/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php +++ b/src/PhpSpreadsheet/Shared/PCLZip/PclZip.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\PCLZip; +namespace PhpOffice\PhpSpreadsheet\Shared\PCLZip; // -------------------------------------------------------------------------------- // PhpConcept Library - Zip Module 2.8.2 diff --git a/src/PhpSpreadsheet/Shared/PasswordHasher.php b/src/PhpSpreadsheet/Shared/PasswordHasher.php index 9468564f..86dd9d7a 100644 --- a/src/PhpSpreadsheet/Shared/PasswordHasher.php +++ b/src/PhpSpreadsheet/Shared/PasswordHasher.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/StringHelper.php b/src/PhpSpreadsheet/Shared/StringHelper.php index c4d43161..e04a95d0 100644 --- a/src/PhpSpreadsheet/Shared/StringHelper.php +++ b/src/PhpSpreadsheet/Shared/StringHelper.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -692,7 +692,7 @@ class StringHelper if (preg_match('/^' . self::STRING_REGEXP_FRACTION . '$/i', $operand, $match)) { $sign = ($match[1] == '-') ? '-' : '+'; $fractionFormula = '=' . $sign . $match[2] . $sign . $match[3]; - $operand = \PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($fractionFormula); + $operand = \PhpOffice\PhpSpreadsheet\Calculation::getInstance()->_calculateFormulaValue($fractionFormula); return true; } @@ -723,8 +723,8 @@ class StringHelper } /** - * Set the decimal separator. Only used by \PhpSpreadsheet\Style\NumberFormat::toFormattedString() - * to format output by \PhpSpreadsheet\Writer\HTML and \PhpSpreadsheet\Writer\PDF + * Set the decimal separator. Only used by \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString() + * to format output by \PhpOffice\PhpSpreadsheet\Writer\HTML and \PhpOffice\PhpSpreadsheet\Writer\PDF * * @param string $pValue Character for decimal separator */ @@ -756,8 +756,8 @@ class StringHelper } /** - * Set the thousands separator. Only used by \PhpSpreadsheet\Style\NumberFormat::toFormattedString() - * to format output by \PhpSpreadsheet\Writer\HTML and \PhpSpreadsheet\Writer\PDF + * Set the thousands separator. Only used by \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString() + * to format output by \PhpOffice\PhpSpreadsheet\Writer\HTML and \PhpOffice\PhpSpreadsheet\Writer\PDF * * @param string $pValue Character for thousands separator */ @@ -794,8 +794,8 @@ class StringHelper } /** - * Set the currency code. Only used by \PhpSpreadsheet\Style\NumberFormat::toFormattedString() - * to format output by \PhpSpreadsheet\Writer\HTML and \PhpSpreadsheet\Writer\PDF + * Set the currency code. Only used by \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString() + * to format output by \PhpOffice\PhpSpreadsheet\Writer\HTML and \PhpOffice\PhpSpreadsheet\Writer\PDF * * @param string $pValue Character for currency code */ diff --git a/src/PhpSpreadsheet/Shared/TimeZone.php b/src/PhpSpreadsheet/Shared/TimeZone.php index 50253776..23a83cf2 100644 --- a/src/PhpSpreadsheet/Shared/TimeZone.php +++ b/src/PhpSpreadsheet/Shared/TimeZone.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -106,14 +106,14 @@ class TimeZone * * @param string $timezone The timezone for finding the adjustment to UST * @param int $timestamp PHP date/time value - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return int Number of seconds for timezone adjustment */ public static function getTimeZoneAdjustment($timezone, $timestamp) { if ($timezone !== null) { if (!self::validateTimezone($timezone)) { - throw new \PhpSpreadsheet\Exception('Invalid timezone ' . $timezone); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid timezone ' . $timezone); } } else { $timezone = self::$timezone; diff --git a/src/PhpSpreadsheet/Shared/Trend/BestFit.php b/src/PhpSpreadsheet/Shared/Trend/BestFit.php index 2cdbb6f2..d94110a4 100644 --- a/src/PhpSpreadsheet/Shared/Trend/BestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/BestFit.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Trend; +namespace PhpOffice\PhpSpreadsheet\Shared\Trend; /** * bestFit diff --git a/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php b/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php index 313c321f..231e1fca 100644 --- a/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/ExponentialBestFit.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Trend; +namespace PhpOffice\PhpSpreadsheet\Shared\Trend; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Trend/LinearBestFit.php b/src/PhpSpreadsheet/Shared/Trend/LinearBestFit.php index a314cb03..8cb7978d 100644 --- a/src/PhpSpreadsheet/Shared/Trend/LinearBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/LinearBestFit.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Trend; +namespace PhpOffice\PhpSpreadsheet\Shared\Trend; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php b/src/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php index 5f03d941..16c8583b 100644 --- a/src/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/LogarithmicBestFit.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Trend; +namespace PhpOffice\PhpSpreadsheet\Shared\Trend; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php b/src/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php index 5732f871..771e5257 100644 --- a/src/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/PolynomialBestFit.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Trend; +namespace PhpOffice\PhpSpreadsheet\Shared\Trend; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php b/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php index 5a2046cb..9b8d66f4 100644 --- a/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php +++ b/src/PhpSpreadsheet/Shared/Trend/PowerBestFit.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Trend; +namespace PhpOffice\PhpSpreadsheet\Shared\Trend; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Shared/Trend/Trend.php b/src/PhpSpreadsheet/Shared/Trend/Trend.php index bf5ad69f..4f9909b4 100644 --- a/src/PhpSpreadsheet/Shared/Trend/Trend.php +++ b/src/PhpSpreadsheet/Shared/Trend/Trend.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared\Trend; +namespace PhpOffice\PhpSpreadsheet\Shared\Trend; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -94,7 +94,7 @@ class Trend case self::TREND_EXPONENTIAL: case self::TREND_POWER: if (!isset(self::$trendCache[$key])) { - $className = '\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit'; + $className = '\PhpOffice\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit'; self::$trendCache[$key] = new $className($yValues, $xValues, $const); } @@ -115,7 +115,7 @@ class Trend // If the request is to determine the best fit regression, then we test each Trend line in turn // Start by generating an instance of each available Trend method foreach (self::$trendTypes as $trendMethod) { - $className = '\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit'; + $className = '\PhpOffice\PhpSpreadsheet\Shared\Trend\\' . $trendType . 'BestFit'; $bestFit[$trendMethod] = new $className($yValues, $xValues, $const); $bestFitValue[$trendMethod] = $bestFit[$trendMethod]->getGoodnessOfFit(); } diff --git a/src/PhpSpreadsheet/Shared/XMLWriter.php b/src/PhpSpreadsheet/Shared/XMLWriter.php index bf3ee5df..80fbc1c2 100644 --- a/src/PhpSpreadsheet/Shared/XMLWriter.php +++ b/src/PhpSpreadsheet/Shared/XMLWriter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; if (!defined('DATE_W3C')) { define('DATE_W3C', 'Y-m-d\TH:i:sP'); diff --git a/src/PhpSpreadsheet/Shared/ZipArchive.php b/src/PhpSpreadsheet/Shared/ZipArchive.php index ea77d255..e85344e2 100644 --- a/src/PhpSpreadsheet/Shared/ZipArchive.php +++ b/src/PhpSpreadsheet/Shared/ZipArchive.php @@ -1,12 +1,12 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; if (!defined('PCLZIP_TEMPORARY_DIR')) { define('PCLZIP_TEMPORARY_DIR', File::sysGetTempDir() . DIRECTORY_SEPARATOR); } -use PhpSpreadsheet\Shared\PCLZip\PclZip; +use PhpOffice\PhpSpreadsheet\Shared\PCLZip\PclZip; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -76,7 +76,7 @@ class ZipArchive * * @param string $localname Directory/Name of the file to add to the zip archive * @param string $contents String of data to add to the zip archive - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function addFromString($localname, $contents) { @@ -88,7 +88,7 @@ class ZipArchive $res = $this->zip->add($this->tempDir . '/' . $filenameParts['basename'], PCLZIP_OPT_REMOVE_PATH, $this->tempDir, PCLZIP_OPT_ADD_PATH, $filenameParts['dirname']); if ($res == 0) { - throw new \PhpSpreadsheet\Writer\Exception('Error zipping files : ' . $this->zip->errorInfo(true)); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Error zipping files : ' . $this->zip->errorInfo(true)); } unlink($this->tempDir . '/' . $filenameParts['basename']); diff --git a/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php b/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php index b20412a7..ade3c6ee 100644 --- a/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php +++ b/src/PhpSpreadsheet/Shared/ZipStreamWrapper.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Shared; +namespace PhpOffice\PhpSpreadsheet\Shared; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -70,14 +70,14 @@ class ZipStreamWrapper * @param string $mode only "r" is supported * @param int $options mask of STREAM_REPORT_ERRORS and STREAM_USE_PATH * @param string &$openedPath absolute path of the opened stream (out parameter) - * @throws \PhpSpreadsheet\Reader\Exception + * @throws \PhpOffice\PhpSpreadsheet\Reader\Exception * @return bool true on success */ public function stream_open($path, $mode, $options, &$opened_path) // @codingStandardsIgnoreLine { // Check for mode if ($mode{0} != 'r') { - throw new \PhpSpreadsheet\Reader\Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.'); + throw new \PhpOffice\PhpSpreadsheet\Reader\Exception('Mode ' . $mode . ' is not supported. Only read mode is supported.'); } $pos = strrpos($path, '#'); @@ -85,7 +85,7 @@ class ZipStreamWrapper $url['fragment'] = substr($path, $pos + 1); // Open archive - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $this->archive = new $zipClass(); $this->archive->open($url['host']); diff --git a/src/PhpSpreadsheet/Spreadsheet.php b/src/PhpSpreadsheet/Spreadsheet.php index 583be0c5..a8477804 100644 --- a/src/PhpSpreadsheet/Spreadsheet.php +++ b/src/PhpSpreadsheet/Spreadsheet.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Style.php b/src/PhpSpreadsheet/Style.php index 5dd7fce2..2e2045d6 100644 --- a/src/PhpSpreadsheet/Style.php +++ b/src/PhpSpreadsheet/Style.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -175,7 +175,7 @@ class Style extends Style\Supervisor implements IComparable * 'name' => 'Arial', * 'bold' => true, * 'italic' => false, - * 'underline' => \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE, + * 'underline' => \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE, * 'strike' => false, * 'color' => array( * 'rgb' => '808080' @@ -183,13 +183,13 @@ class Style extends Style\Supervisor implements IComparable * ), * 'borders' => array( * 'bottom' => array( - * 'style' => \PhpSpreadsheet\Style\Border::BORDER_DASHDOT, + * 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT, * 'color' => array( * 'rgb' => '808080' * ) * ), * 'top' => array( - * 'style' => \PhpSpreadsheet\Style\Border::BORDER_DASHDOT, + * 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT, * 'color' => array( * 'rgb' => '808080' * ) diff --git a/src/PhpSpreadsheet/Style/Alignment.php b/src/PhpSpreadsheet/Style/Alignment.php index be294843..19b469c2 100644 --- a/src/PhpSpreadsheet/Style/Alignment.php +++ b/src/PhpSpreadsheet/Style/Alignment.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Alignment extends Supervisor implements \PhpSpreadsheet\IComparable +class Alignment extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /* Horizontal alignment styles */ const HORIZONTAL_GENERAL = 'general'; @@ -147,8 +147,8 @@ class Alignment extends Supervisor implements \PhpSpreadsheet\IComparable * <code> * $spreadsheet->getActiveSheet()->getStyle('B2')->getAlignment()->applyFromArray( * array( - * 'horizontal' => \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER, - * 'vertical' => \PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER, + * 'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER, + * 'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER, * 'rotation' => 0, * 'wrap' => TRUE * ) @@ -156,7 +156,7 @@ class Alignment extends Supervisor implements \PhpSpreadsheet\IComparable * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Alignment */ public function applyFromArray($pStyles = null) @@ -189,7 +189,7 @@ class Alignment extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; @@ -285,7 +285,7 @@ class Alignment extends Supervisor implements \PhpSpreadsheet\IComparable * Set TextRotation * * @param int $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Alignment */ public function setTextRotation($pValue = 0) @@ -304,7 +304,7 @@ class Alignment extends Supervisor implements \PhpSpreadsheet\IComparable $this->textRotation = $pValue; } } else { - throw new \PhpSpreadsheet\Exception('Text rotation should be a value between -90 and 90.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Text rotation should be a value between -90 and 90.'); } return $this; diff --git a/src/PhpSpreadsheet/Style/Border.php b/src/PhpSpreadsheet/Style/Border.php index 9108b65a..d06357e5 100644 --- a/src/PhpSpreadsheet/Style/Border.php +++ b/src/PhpSpreadsheet/Style/Border.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Border extends Supervisor implements \PhpSpreadsheet\IComparable +class Border extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /* Border style */ const BORDER_NONE = 'none'; @@ -106,7 +106,7 @@ class Border extends Supervisor implements \PhpSpreadsheet\IComparable * Get the shared style component for the currently active cell in currently active sheet. * Only used for style supervisor * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Border */ public function getSharedComponent() @@ -117,7 +117,7 @@ class Border extends Supervisor implements \PhpSpreadsheet\IComparable case 'inside': case 'outline': case 'vertical': - throw new \PhpSpreadsheet\Exception('Cannot get shared component for a pseudo-border.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cannot get shared component for a pseudo-border.'); break; case 'bottom': return $this->parent->getSharedComponent()->getBottom(); @@ -164,7 +164,7 @@ class Border extends Supervisor implements \PhpSpreadsheet\IComparable * <code> * $spreadsheet->getActiveSheet()->getStyle('B2')->getBorders()->getTop()->applyFromArray( * array( - * 'style' => \PhpSpreadsheet\Style\Border::BORDER_DASHDOT, + * 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT, * 'color' => array( * 'rgb' => '808080' * ) @@ -173,7 +173,7 @@ class Border extends Supervisor implements \PhpSpreadsheet\IComparable * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Border */ public function applyFromArray($pStyles = null) @@ -190,7 +190,7 @@ class Border extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; @@ -249,7 +249,7 @@ class Border extends Supervisor implements \PhpSpreadsheet\IComparable * Set Border Color * * @param Color $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Border */ public function setColor(Color $pValue = null) diff --git a/src/PhpSpreadsheet/Style/Borders.php b/src/PhpSpreadsheet/Style/Borders.php index 6594cbb5..9a8b483d 100644 --- a/src/PhpSpreadsheet/Style/Borders.php +++ b/src/PhpSpreadsheet/Style/Borders.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Borders extends Supervisor implements \PhpSpreadsheet\IComparable +class Borders extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /* Diagonal directions */ const DIAGONAL_NONE = 0; @@ -184,13 +184,13 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable * $spreadsheet->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( * array( * 'bottom' => array( - * 'style' => \PhpSpreadsheet\Style\Border::BORDER_DASHDOT, + * 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT, * 'color' => array( * 'rgb' => '808080' * ) * ), * 'top' => array( - * 'style' => \PhpSpreadsheet\Style\Border::BORDER_DASHDOT, + * 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT, * 'color' => array( * 'rgb' => '808080' * ) @@ -202,7 +202,7 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable * $spreadsheet->getActiveSheet()->getStyle('B2')->getBorders()->applyFromArray( * array( * 'allborders' => array( - * 'style' => \PhpSpreadsheet\Style\Border::BORDER_DASHDOT, + * 'style' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT, * 'color' => array( * 'rgb' => '808080' * ) @@ -212,7 +212,7 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Borders */ public function applyFromArray($pStyles = null) @@ -247,7 +247,7 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; @@ -306,13 +306,13 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable /** * Get AllBorders (pseudo-border). Only applies to supervisor. * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Border */ public function getAllBorders() { if (!$this->isSupervisor) { - throw new \PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); } return $this->allBorders; @@ -321,13 +321,13 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable /** * Get Outline (pseudo-border). Only applies to supervisor. * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function getOutline() { if (!$this->isSupervisor) { - throw new \PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); } return $this->outline; @@ -336,13 +336,13 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable /** * Get Inside (pseudo-border). Only applies to supervisor. * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return bool */ public function getInside() { if (!$this->isSupervisor) { - throw new \PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); } return $this->inside; @@ -351,13 +351,13 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable /** * Get Vertical (pseudo-border). Only applies to supervisor. * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Border */ public function getVertical() { if (!$this->isSupervisor) { - throw new \PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); } return $this->vertical; @@ -366,13 +366,13 @@ class Borders extends Supervisor implements \PhpSpreadsheet\IComparable /** * Get Horizontal (pseudo-border). Only applies to supervisor. * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Border */ public function getHorizontal() { if (!$this->isSupervisor) { - throw new \PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Can only get pseudo-border for supervisor.'); } return $this->horizontal; diff --git a/src/PhpSpreadsheet/Style/Color.php b/src/PhpSpreadsheet/Style/Color.php index f042b1b5..7d487692 100644 --- a/src/PhpSpreadsheet/Style/Color.php +++ b/src/PhpSpreadsheet/Style/Color.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Color extends Supervisor implements \PhpSpreadsheet\IComparable +class Color extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /* Colors */ const COLOR_BLACK = 'FF000000'; @@ -145,7 +145,7 @@ class Color extends Supervisor implements \PhpSpreadsheet\IComparable * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Color */ public function applyFromArray($pStyles = null) @@ -162,7 +162,7 @@ class Color extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; diff --git a/src/PhpSpreadsheet/Style/Conditional.php b/src/PhpSpreadsheet/Style/Conditional.php index 03c213e7..4531979e 100644 --- a/src/PhpSpreadsheet/Style/Conditional.php +++ b/src/PhpSpreadsheet/Style/Conditional.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Conditional implements \PhpSpreadsheet\IComparable +class Conditional implements \PhpOffice\PhpSpreadsheet\IComparable { /* Condition types */ const CONDITION_NONE = 'none'; @@ -77,7 +77,7 @@ class Conditional implements \PhpSpreadsheet\IComparable /** * Style * - * @var \PhpSpreadsheet\Style + * @var \PhpOffice\PhpSpreadsheet\Style */ private $style; @@ -91,7 +91,7 @@ class Conditional implements \PhpSpreadsheet\IComparable $this->operatorType = self::OPERATOR_NONE; $this->text = null; $this->condition = []; - $this->style = new \PhpSpreadsheet\Style(false, true); + $this->style = new \PhpOffice\PhpSpreadsheet\Style(false, true); } /** @@ -236,7 +236,7 @@ class Conditional implements \PhpSpreadsheet\IComparable /** * Get Style * - * @return \PhpSpreadsheet\Style + * @return \PhpOffice\PhpSpreadsheet\Style */ public function getStyle() { @@ -246,11 +246,11 @@ class Conditional implements \PhpSpreadsheet\IComparable /** * Set Style * - * @param \PhpSpreadsheet\Style $pValue - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Style $pValue + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Conditional */ - public function setStyle(\PhpSpreadsheet\Style $pValue = null) + public function setStyle(\PhpOffice\PhpSpreadsheet\Style $pValue = null) { $this->style = $pValue; diff --git a/src/PhpSpreadsheet/Style/Fill.php b/src/PhpSpreadsheet/Style/Fill.php index 507f5554..7330ff9e 100644 --- a/src/PhpSpreadsheet/Style/Fill.php +++ b/src/PhpSpreadsheet/Style/Fill.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Fill extends Supervisor implements \PhpSpreadsheet\IComparable +class Fill extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /* Fill types */ const FILL_NONE = 'none'; @@ -134,7 +134,7 @@ class Fill extends Supervisor implements \PhpSpreadsheet\IComparable * <code> * $spreadsheet->getActiveSheet()->getStyle('B2')->getFill()->applyFromArray( * array( - * 'type' => \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR, + * 'type' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR, * 'rotation' => 0, * 'startcolor' => array( * 'rgb' => '000000' @@ -147,7 +147,7 @@ class Fill extends Supervisor implements \PhpSpreadsheet\IComparable * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Fill */ public function applyFromArray($pStyles = null) @@ -173,7 +173,7 @@ class Fill extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; @@ -257,7 +257,7 @@ class Fill extends Supervisor implements \PhpSpreadsheet\IComparable * Set Start Color * * @param Color $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Fill */ public function setStartColor(Color $pValue = null) @@ -289,7 +289,7 @@ class Fill extends Supervisor implements \PhpSpreadsheet\IComparable * Set End Color * * @param Color $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Fill */ public function setEndColor(Color $pValue = null) diff --git a/src/PhpSpreadsheet/Style/Font.php b/src/PhpSpreadsheet/Style/Font.php index 4f9e706e..af7d40ce 100644 --- a/src/PhpSpreadsheet/Style/Font.php +++ b/src/PhpSpreadsheet/Style/Font.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Font extends Supervisor implements \PhpSpreadsheet\IComparable +class Font extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /* Underline types */ const UNDERLINE_NONE = 'none'; @@ -162,7 +162,7 @@ class Font extends Supervisor implements \PhpSpreadsheet\IComparable * 'name' => 'Arial', * 'bold' => TRUE, * 'italic' => FALSE, - * 'underline' => \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE, + * 'underline' => \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE, * 'strike' => FALSE, * 'color' => array( * 'rgb' => '808080' @@ -172,7 +172,7 @@ class Font extends Supervisor implements \PhpSpreadsheet\IComparable * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Font */ public function applyFromArray($pStyles = null) @@ -210,7 +210,7 @@ class Font extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; @@ -445,7 +445,7 @@ class Font extends Supervisor implements \PhpSpreadsheet\IComparable /** * Set Underline * - * @param string|bool $pValue \PhpSpreadsheet\Style\Font underline type + * @param string|bool $pValue \PhpOffice\PhpSpreadsheet\Style\Font underline type * If a boolean is passed, then TRUE equates to UNDERLINE_SINGLE, * false equates to UNDERLINE_NONE * @return Font @@ -516,7 +516,7 @@ class Font extends Supervisor implements \PhpSpreadsheet\IComparable * Set Color * * @param Color $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Font */ public function setColor(Color $pValue = null) diff --git a/src/PhpSpreadsheet/Style/NumberFormat.php b/src/PhpSpreadsheet/Style/NumberFormat.php index ea853446..77c06f5f 100644 --- a/src/PhpSpreadsheet/Style/NumberFormat.php +++ b/src/PhpSpreadsheet/Style/NumberFormat.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable +class NumberFormat extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /* Pre-defined formats */ const FORMAT_GENERAL = 'General'; @@ -143,13 +143,13 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable * <code> * $spreadsheet->getActiveSheet()->getStyle('B2')->getNumberFormat()->applyFromArray( * array( - * 'code' => \PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE + * 'code' => \PhpOffice\PhpSpreadsheet\Style\NumberFormat::FORMAT_CURRENCY_EUR_SIMPLE * ) * ); * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return NumberFormat */ public function applyFromArray($pStyles = null) @@ -163,7 +163,7 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; @@ -489,7 +489,7 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable // escape any quoted characters so that DateTime format() will render them correctly $format = preg_replace_callback('/"(.*)"/U', ['self', 'escapeQuotesCallback'], $format); - $dateObj = \PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value); + $dateObj = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value); $value = $dateObj->format($format); } @@ -520,7 +520,7 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable $decimalLength = strlen($decimalPart); $decimalDivisor = pow(10, $decimalLength); - $GCD = \PhpSpreadsheet\Calculation\MathTrig::GCD($decimalPart, $decimalDivisor); + $GCD = \PhpOffice\PhpSpreadsheet\Calculation\MathTrig::GCD($decimalPart, $decimalDivisor); $adjustedDecimalPart = $decimalPart / $GCD; $adjustedDecimalDivisor = $decimalDivisor / $GCD; @@ -712,8 +712,8 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable $value = number_format( $value, strlen($right), - \PhpSpreadsheet\Shared\StringHelper::getDecimalSeparator(), - \PhpSpreadsheet\Shared\StringHelper::getThousandsSeparator() + \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getDecimalSeparator(), + \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getThousandsSeparator() ); $value = preg_replace($number_regex, $value, $format); } else { @@ -736,7 +736,7 @@ class NumberFormat extends Supervisor implements \PhpSpreadsheet\IComparable $currencyCode = $m[1]; list($currencyCode) = explode('-', $currencyCode); if ($currencyCode == '') { - $currencyCode = \PhpSpreadsheet\Shared\StringHelper::getCurrencyCode(); + $currencyCode = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::getCurrencyCode(); } $value = preg_replace('/\[\$([^\]]*)\]/u', $currencyCode, $value); } diff --git a/src/PhpSpreadsheet/Style/Protection.php b/src/PhpSpreadsheet/Style/Protection.php index 44a9f51c..eeef236a 100644 --- a/src/PhpSpreadsheet/Style/Protection.php +++ b/src/PhpSpreadsheet/Style/Protection.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Style; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Protection extends Supervisor implements \PhpSpreadsheet\IComparable +class Protection extends Supervisor implements \PhpOffice\PhpSpreadsheet\IComparable { /** Protection styles */ const PROTECTION_INHERIT = 'inherit'; @@ -102,7 +102,7 @@ class Protection extends Supervisor implements \PhpSpreadsheet\IComparable * </code> * * @param array $pStyles Array containing style information - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Protection */ public function applyFromArray($pStyles = null) @@ -119,7 +119,7 @@ class Protection extends Supervisor implements \PhpSpreadsheet\IComparable } } } else { - throw new \PhpSpreadsheet\Exception('Invalid style array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid style array passed.'); } return $this; diff --git a/src/PhpSpreadsheet/Style/Supervisor.php b/src/PhpSpreadsheet/Style/Supervisor.php index c924b5b9..6833799a 100644 --- a/src/PhpSpreadsheet/Style/Supervisor.php +++ b/src/PhpSpreadsheet/Style/Supervisor.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Style; +namespace PhpOffice\PhpSpreadsheet\Style; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -36,7 +36,7 @@ abstract class Supervisor /** * Parent. Only used for supervisor * - * @var \PhpSpreadsheet\Style + * @var \PhpOffice\PhpSpreadsheet\Style */ protected $parent; @@ -56,7 +56,7 @@ abstract class Supervisor /** * Bind parent. Only used for supervisor * - * @param \PhpSpreadsheet\Style $parent + * @param \PhpOffice\PhpSpreadsheet\Style $parent * @return Supervisor */ public function bindParent($parent, $parentPropertyName = null) @@ -79,7 +79,7 @@ abstract class Supervisor /** * Get the currently active sheet. Only used for supervisor * - * @return \PhpSpreadsheet\Worksheet + * @return \PhpOffice\PhpSpreadsheet\Worksheet */ public function getActiveSheet() { diff --git a/src/PhpSpreadsheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet.php index dd4ea72c..044cb9f3 100644 --- a/src/PhpSpreadsheet/Worksheet.php +++ b/src/PhpSpreadsheet/Worksheet.php @@ -1,10 +1,8 @@ <?php -namespace PhpSpreadsheet; +namespace PhpOffice\PhpSpreadsheet; /** - * PhpSpreadsheet\Worksheet - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -1398,7 +1396,7 @@ class Worksheet implements IComparable } /** - * Set default style - should only be used by \PhpSpreadsheet\IReader implementations! + * Set default style - should only be used by \PhpOffice\PhpSpreadsheet\IReader implementations! * * @deprecated * @param Style $pValue @@ -1679,7 +1677,7 @@ class Worksheet implements IComparable * * @param int $pColumn Numeric column coordinate of the cell * @param int $pRow Numeric row coordinate of the cell - * @param int $pBreak Break type (type of \PhpSpreadsheet\Worksheet::BREAK_*) + * @param int $pBreak Break type (type of \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_*) * @return Worksheet */ public function setBreakByColumnAndRow($pColumn = 0, $pRow = 1, $pBreak = self::BREAK_NONE) diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/src/PhpSpreadsheet/Worksheet/AutoFilter.php index 8d93d6cc..0b6ec328 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,7 +29,7 @@ class AutoFilter /** * Autofilter Worksheet * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ private $workSheet; @@ -51,9 +51,9 @@ class AutoFilter * Create a new AutoFilter * * @param string $pRange Cell range (i.e. A1:E10) - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet */ - public function __construct($pRange = '', \PhpSpreadsheet\Worksheet $pSheet = null) + public function __construct($pRange = '', \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { $this->range = $pRange; $this->workSheet = $pSheet; @@ -62,7 +62,7 @@ class AutoFilter /** * Get AutoFilter Parent Worksheet * - * @return \PhpSpreadsheet\Worksheet + * @return \PhpOffice\PhpSpreadsheet\Worksheet */ public function getParent() { @@ -72,10 +72,10 @@ class AutoFilter /** * Set AutoFilter Parent Worksheet * - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet * @return AutoFilter */ - public function setParent(\PhpSpreadsheet\Worksheet $pSheet = null) + public function setParent(\PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { $this->workSheet = $pSheet; @@ -96,7 +96,7 @@ class AutoFilter * Set AutoFilter Range * * @param string $pRange Cell range (i.e. A1:E10) - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return AutoFilter */ public function setRange($pRange = '') @@ -112,7 +112,7 @@ class AutoFilter } elseif (empty($pRange)) { $this->range = ''; } else { - throw new \PhpSpreadsheet\Exception('Autofilter must be set on a range of cells.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Autofilter must be set on a range of cells.'); } if (empty($pRange)) { @@ -120,9 +120,9 @@ class AutoFilter $this->columns = []; } else { // Discard any column rules that are no longer valid within this range - list($rangeStart, $rangeEnd) = \PhpSpreadsheet\Cell::rangeBoundaries($this->range); + list($rangeStart, $rangeEnd) = \PhpOffice\PhpSpreadsheet\Cell::rangeBoundaries($this->range); foreach ($this->columns as $key => $value) { - $colIndex = \PhpSpreadsheet\Cell::columnIndexFromString($key); + $colIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($key); if (($rangeStart[0] > $colIndex) || ($rangeEnd[0] < $colIndex)) { unset($this->columns[$key]); } @@ -135,7 +135,7 @@ class AutoFilter /** * Get all AutoFilter Columns * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return AutoFilter\Column[] */ public function getColumns() @@ -147,19 +147,19 @@ class AutoFilter * Validate that the specified column is in the AutoFilter range * * @param string $column Column name (e.g. A) - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return int The column offset within the autofilter range */ public function testColumnInRange($column) { if (empty($this->range)) { - throw new \PhpSpreadsheet\Exception('No autofilter range is defined.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('No autofilter range is defined.'); } - $columnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($column); - list($rangeStart, $rangeEnd) = \PhpSpreadsheet\Cell::rangeBoundaries($this->range); + $columnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column); + list($rangeStart, $rangeEnd) = \PhpOffice\PhpSpreadsheet\Cell::rangeBoundaries($this->range); if (($rangeStart[0] > $columnIndex) || ($rangeEnd[0] < $columnIndex)) { - throw new \PhpSpreadsheet\Exception('Column is outside of current autofilter range.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Column is outside of current autofilter range.'); } return $columnIndex - $rangeStart[0]; @@ -169,7 +169,7 @@ class AutoFilter * Get a specified AutoFilter Column Offset within the defined AutoFilter range * * @param string $pColumn Column name (e.g. A) - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return int The offset of the specified column within the autofilter range */ public function getColumnOffset($pColumn) @@ -181,7 +181,7 @@ class AutoFilter * Get a specified AutoFilter Column * * @param string $pColumn Column name (e.g. A) - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return AutoFilter\Column */ public function getColumn($pColumn) @@ -199,13 +199,13 @@ class AutoFilter * Get a specified AutoFilter Column by it's offset * * @param int $pColumnOffset Column offset within range (starting from 0) - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return AutoFilter\Column */ public function getColumnByOffset($pColumnOffset = 0) { - list($rangeStart, $rangeEnd) = \PhpSpreadsheet\Cell::rangeBoundaries($this->range); - $pColumn = \PhpSpreadsheet\Cell::stringFromColumnIndex($rangeStart[0] + $pColumnOffset - 1); + list($rangeStart, $rangeEnd) = \PhpOffice\PhpSpreadsheet\Cell::rangeBoundaries($this->range); + $pColumn = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($rangeStart[0] + $pColumnOffset - 1); return $this->getColumn($pColumn); } @@ -215,7 +215,7 @@ class AutoFilter * * @param AutoFilter\Column|string $pColumn * A simple string containing a Column ID like 'A' is permitted - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return AutoFilter */ public function setColumn($pColumn) @@ -225,7 +225,7 @@ class AutoFilter } elseif (is_object($pColumn) && ($pColumn instanceof AutoFilter\Column)) { $column = $pColumn->getColumnIndex(); } else { - throw new \PhpSpreadsheet\Exception('Column is not within the autofilter range.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Column is not within the autofilter range.'); } $this->testColumnInRange($column); @@ -244,7 +244,7 @@ class AutoFilter * Clear a specified AutoFilter Column * * @param string $pColumn Column name (e.g. A) - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return AutoFilter */ public function clearColumn($pColumn) @@ -321,7 +321,7 @@ class AutoFilter } if (is_numeric($cellValue)) { - $dateValue = \PhpSpreadsheet\Shared\Date::excelToTimestamp($cellValue); + $dateValue = \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($cellValue); if ($cellValue < 1) { // Just the time part $dtVal = date('His', $dateValue); @@ -439,7 +439,7 @@ class AutoFilter } if (is_numeric($cellValue)) { - $dateValue = date('m', \PhpSpreadsheet\Shared\Date::excelToTimestamp($cellValue)); + $dateValue = date('m', \PhpOffice\PhpSpreadsheet\Shared\Date::excelToTimestamp($cellValue)); if (in_array($dateValue, $monthSet)) { return true; } @@ -465,12 +465,12 @@ class AutoFilter */ private function dynamicFilterDateRange($dynamicRuleType, &$filterColumn) { - $rDateType = \PhpSpreadsheet\Calculation\Functions::getReturnDateType(); - \PhpSpreadsheet\Calculation\Functions::setReturnDateType(\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_NUMERIC); + $rDateType = \PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType(); + \PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType(\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_PHP_NUMERIC); $val = $maxVal = null; $ruleValues = []; - $baseDate = \PhpSpreadsheet\Calculation\DateTime::DATENOW(); + $baseDate = \PhpOffice\PhpSpreadsheet\Calculation\DateTime::DATENOW(); // Calculate start/end dates for the required date range based on current date switch ($dynamicRuleType) { case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK: @@ -503,41 +503,41 @@ class AutoFilter case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_TODAY: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YESTERDAY: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_TOMORROW: - $maxVal = (int) \PhpSpreadsheet\Shared\Date::PHPtoExcel(strtotime('+1 day', $baseDate)); - $val = (int) \PhpSpreadsheet\Shared\Date::PHPToExcel($baseDate); + $maxVal = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPtoExcel(strtotime('+1 day', $baseDate)); + $val = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($baseDate); break; case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_YEARTODATE: - $maxVal = (int) \PhpSpreadsheet\Shared\Date::PHPtoExcel(strtotime('+1 day', $baseDate)); - $val = (int) \PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate))); + $maxVal = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPtoExcel(strtotime('+1 day', $baseDate)); + $val = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate))); break; case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISYEAR: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTYEAR: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTYEAR: - $maxVal = (int) \PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 31, 12, date('Y', $baseDate))); + $maxVal = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 31, 12, date('Y', $baseDate))); ++$maxVal; - $val = (int) \PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate))); + $val = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1, date('Y', $baseDate))); break; case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISQUARTER: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTQUARTER: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTQUARTER: $thisMonth = date('m', $baseDate); $thisQuarter = floor(--$thisMonth / 3); - $maxVal = (int) \PhpSpreadsheet\Shared\Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), (1 + $thisQuarter) * 3, date('Y', $baseDate))); + $maxVal = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), (1 + $thisQuarter) * 3, date('Y', $baseDate))); ++$maxVal; - $val = (int) \PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1 + $thisQuarter * 3, date('Y', $baseDate))); + $val = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, 1 + $thisQuarter * 3, date('Y', $baseDate))); break; case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISMONTH: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTMONTH: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTMONTH: - $maxVal = (int) \PhpSpreadsheet\Shared\Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), date('m', $baseDate), date('Y', $baseDate))); + $maxVal = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPtoExcel(gmmktime(0, 0, 0, date('t', $baseDate), date('m', $baseDate), date('Y', $baseDate))); ++$maxVal; - $val = (int) \PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); + $val = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel(gmmktime(0, 0, 0, 1, date('m', $baseDate), date('Y', $baseDate))); break; case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_THISWEEK: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_LASTWEEK: case AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_NEXTWEEK: $dayOfWeek = date('w', $baseDate); - $val = (int) \PhpSpreadsheet\Shared\Date::PHPToExcel($baseDate) - $dayOfWeek; + $val = (int) \PhpOffice\PhpSpreadsheet\Shared\Date::PHPToExcel($baseDate) - $dayOfWeek; $maxVal = $val + 7; break; } @@ -560,7 +560,7 @@ class AutoFilter // Set the rules for identifying rows for hide/show $ruleValues[] = ['operator' => AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHANOREQUAL, 'value' => $val]; $ruleValues[] = ['operator' => AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_LESSTHAN, 'value' => $maxVal]; - \PhpSpreadsheet\Calculation\Functions::setReturnDateType($rDateType); + \PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType($rDateType); return ['method' => 'filterTestInCustomDataSet', 'arguments' => ['filterRules' => $ruleValues, 'join' => AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND]]; } @@ -568,7 +568,7 @@ class AutoFilter private function calculateTopTenValue($columnID, $startRow, $endRow, $ruleType, $ruleValue) { $range = $columnID . $startRow . ':' . $columnID . $endRow; - $dataValues = \PhpSpreadsheet\Calculation\Functions::flattenArray($this->workSheet->rangeToArray($range, null, true, false)); + $dataValues = \PhpOffice\PhpSpreadsheet\Calculation\Functions::flattenArray($this->workSheet->rangeToArray($range, null, true, false)); $dataValues = array_filter($dataValues); if ($ruleType == AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) { @@ -583,12 +583,12 @@ class AutoFilter /** * Apply the AutoFilter rules to the AutoFilter Range * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return AutoFilter */ public function showHideRows() { - list($rangeStart, $rangeEnd) = \PhpSpreadsheet\Cell::rangeBoundaries($this->range); + list($rangeStart, $rangeEnd) = \PhpOffice\PhpSpreadsheet\Cell::rangeBoundaries($this->range); // The heading row should always be visible $this->workSheet->getRowDimension($rangeStart[1])->setVisible(true); @@ -698,7 +698,7 @@ class AutoFilter // Number (Average) based // Calculate the average $averageFormula = '=AVERAGE(' . $columnID . ($rangeStart[1] + 1) . ':' . $columnID . $rangeEnd[1] . ')'; - $average = \PhpSpreadsheet\Calculation::getInstance()->calculateFormula($averageFormula, null, $this->workSheet->getCell('A1')); + $average = \PhpOffice\PhpSpreadsheet\Calculation::getInstance()->calculateFormula($averageFormula, null, $this->workSheet->getCell('A1')); // Set above/below rule based on greaterThan or LessTan $operator = ($dynamicRuleType === AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMIC_ABOVEAVERAGE) ? AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_GREATERTHAN @@ -779,7 +779,7 @@ class AutoFilter // Execute the filter test $result = $result && call_user_func_array( - ['\\PhpSpreadsheet\\Worksheet\\AutoFilter', $columnFilterTest['method']], + ['\\PhpOffice\\PhpSpreadsheet\\Worksheet\\AutoFilter', $columnFilterTest['method']], [$cellValue, $columnFilterTest['arguments']] ); // If filter test has resulted in FALSE, exit the loop straightaway rather than running any more tests @@ -809,7 +809,7 @@ class AutoFilter $this->{$key} = clone $value; } } elseif ((is_array($value)) && ($key == 'columns')) { - // The columns array of \PhpSpreadsheet\Worksheet\AutoFilter objects + // The columns array of \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter objects $this->{$key} = []; foreach ($value as $k => $v) { $this->{$key}[$k] = clone $v; diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php index 3d889629..92dd046f 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet\AutoFilter; +namespace PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -68,7 +68,7 @@ class Column /** * Autofilter * - * @var \PhpSpreadsheet\Worksheet\AutoFilter + * @var \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter */ private $parent; @@ -111,9 +111,9 @@ class Column * Create a new Column * * @param string $pColumn Column (e.g. A) - * @param \PhpSpreadsheet\Worksheet\AutoFilter $pParent Autofilter for this column + * @param \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter $pParent Autofilter for this column */ - public function __construct($pColumn, \PhpSpreadsheet\Worksheet\AutoFilter $pParent = null) + public function __construct($pColumn, \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter $pParent = null) { $this->columnIndex = $pColumn; $this->parent = $pParent; @@ -133,7 +133,7 @@ class Column * Set AutoFilter Column Index * * @param string $pColumn Column (e.g. A) - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Column */ public function setColumnIndex($pColumn) @@ -152,7 +152,7 @@ class Column /** * Get this Column's AutoFilter Parent * - * @return \PhpSpreadsheet\Worksheet\AutoFilter + * @return \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter */ public function getParent() { @@ -162,10 +162,10 @@ class Column /** * Set this Column's AutoFilter Parent * - * @param \PhpSpreadsheet\Worksheet\AutoFilter + * @param \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter * @return Column */ - public function setParent(\PhpSpreadsheet\Worksheet\AutoFilter $pParent = null) + public function setParent(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter $pParent = null) { $this->parent = $pParent; @@ -186,13 +186,13 @@ class Column * Set AutoFilter Type * * @param string $pFilterType - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Column */ public function setFilterType($pFilterType = self::AUTOFILTER_FILTERTYPE_FILTER) { if (!in_array($pFilterType, self::$filterTypes)) { - throw new \PhpSpreadsheet\Exception('Invalid filter type for column AutoFilter.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid filter type for column AutoFilter.'); } $this->filterType = $pFilterType; @@ -214,7 +214,7 @@ class Column * Set AutoFilter Multiple Rules And/Or * * @param string $pJoin And/Or - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Column */ public function setJoin($pJoin = self::AUTOFILTER_COLUMN_JOIN_OR) @@ -222,7 +222,7 @@ class Column // Lowercase And/Or $pJoin = strtolower($pJoin); if (!in_array($pJoin, self::$ruleJoins)) { - throw new \PhpSpreadsheet\Exception('Invalid rule connection for column AutoFilter.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid rule connection for column AutoFilter.'); } $this->join = $pJoin; @@ -234,7 +234,7 @@ class Column * Set AutoFilter Attributes * * @param string[] $pAttributes - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Column */ public function setAttributes($pAttributes = []) @@ -249,7 +249,7 @@ class Column * * @param string $pName Attribute Name * @param string $pValue Attribute Value - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Column */ public function setAttribute($pName, $pValue) @@ -287,7 +287,7 @@ class Column /** * Get all AutoFilter Column Rules * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Column\Rule[] */ public function getRules() @@ -385,7 +385,7 @@ class Column $this->$key = clone $value; } } elseif ((is_array($value)) && ($key == 'ruleset')) { - // The columns array of \PhpSpreadsheet\Worksheet\AutoFilter objects + // The columns array of \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter objects $this->$key = []; foreach ($value as $k => $v) { $this->$key[$k] = clone $v; diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php index 92abb78e..b248ba9a 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter/Column/Rule.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet\AutoFilter\Column; +namespace PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -222,7 +222,7 @@ class Rule /** * Autofilter Column * - * @var \PhpSpreadsheet\Worksheet\AutoFilter\Column + * @var \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column */ private $parent = null; @@ -257,9 +257,9 @@ class Rule /** * Create a new Rule * - * @param \PhpSpreadsheet\Worksheet\AutoFilter\Column $pParent + * @param \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column $pParent */ - public function __construct(\PhpSpreadsheet\Worksheet\AutoFilter\Column $pParent = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column $pParent = null) { $this->parent = $pParent; } @@ -278,13 +278,13 @@ class Rule * Set AutoFilter Rule Type * * @param string $pRuleType - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Rule */ public function setRuleType($pRuleType = self::AUTOFILTER_RULETYPE_FILTER) { if (!in_array($pRuleType, self::$ruleTypes)) { - throw new \PhpSpreadsheet\Exception('Invalid rule type for column AutoFilter Rule.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid rule type for column AutoFilter Rule.'); } $this->ruleType = $pRuleType; @@ -306,7 +306,7 @@ class Rule * Set AutoFilter Rule Value * * @param string|string[] $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Rule */ public function setValue($pValue = '') @@ -324,7 +324,7 @@ class Rule } } if (count($pValue) == 0) { - throw new \PhpSpreadsheet\Exception('Invalid rule value for column AutoFilter Rule.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid rule value for column AutoFilter Rule.'); } // Set the dateTime grouping that we've anticipated $this->setGrouping(self::$dateTimeGroups[$grouping]); @@ -348,7 +348,7 @@ class Rule * Set AutoFilter Rule Operator * * @param string $pOperator - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Rule */ public function setOperator($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL) @@ -358,7 +358,7 @@ class Rule } if ((!in_array($pOperator, self::$operators)) && (!in_array($pOperator, self::$topTenValue))) { - throw new \PhpSpreadsheet\Exception('Invalid operator for column AutoFilter Rule.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid operator for column AutoFilter Rule.'); } $this->operator = $pOperator; @@ -379,7 +379,7 @@ class Rule * Set AutoFilter Rule Grouping * * @param string $pGrouping - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Rule */ public function setGrouping($pGrouping = null) @@ -388,7 +388,7 @@ class Rule (!in_array($pGrouping, self::$dateTimeGroups)) && (!in_array($pGrouping, self::$dynamicTypes)) && (!in_array($pGrouping, self::$topTenType))) { - throw new \PhpSpreadsheet\Exception('Invalid rule type for column AutoFilter Rule.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid rule type for column AutoFilter Rule.'); } $this->grouping = $pGrouping; @@ -401,7 +401,7 @@ class Rule * @param string $pOperator * @param string|string[] $pValue * @param string $pGrouping - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Rule */ public function setRule($pOperator = self::AUTOFILTER_COLUMN_RULE_EQUAL, $pValue = '', $pGrouping = null) @@ -421,7 +421,7 @@ class Rule /** * Get this Rule's AutoFilter Column Parent * - * @return \PhpSpreadsheet\Worksheet\AutoFilter\Column + * @return \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column */ public function getParent() { @@ -431,10 +431,10 @@ class Rule /** * Set this Rule's AutoFilter Column Parent * - * @param \PhpSpreadsheet\Worksheet\AutoFilter\Column + * @param \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column * @return Rule */ - public function setParent(\PhpSpreadsheet\Worksheet\AutoFilter\Column $pParent = null) + public function setParent(\PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column $pParent = null) { $this->parent = $pParent; diff --git a/src/PhpSpreadsheet/Worksheet/BaseDrawing.php b/src/PhpSpreadsheet/Worksheet/BaseDrawing.php index 324deb80..4f8b8c11 100644 --- a/src/PhpSpreadsheet/Worksheet/BaseDrawing.php +++ b/src/PhpSpreadsheet/Worksheet/BaseDrawing.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Worksheet; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class BaseDrawing implements \PhpSpreadsheet\IComparable +class BaseDrawing implements \PhpOffice\PhpSpreadsheet\IComparable { /** * Image counter @@ -57,7 +57,7 @@ class BaseDrawing implements \PhpSpreadsheet\IComparable /** * Worksheet * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ protected $worksheet; @@ -198,7 +198,7 @@ class BaseDrawing implements \PhpSpreadsheet\IComparable /** * Get Worksheet * - * @return \PhpSpreadsheet\Worksheet + * @return \PhpOffice\PhpSpreadsheet\Worksheet */ public function getWorksheet() { @@ -208,21 +208,21 @@ class BaseDrawing implements \PhpSpreadsheet\IComparable /** * Set Worksheet * - * @param \PhpSpreadsheet\Worksheet $pValue + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pValue * @param bool $pOverrideOld If a Worksheet has already been assigned, overwrite it and remove image from old Worksheet? - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return BaseDrawing */ - public function setWorksheet(\PhpSpreadsheet\Worksheet $pValue = null, $pOverrideOld = false) + public function setWorksheet(\PhpOffice\PhpSpreadsheet\Worksheet $pValue = null, $pOverrideOld = false) { if (is_null($this->worksheet)) { - // Add drawing to \PhpSpreadsheet\Worksheet + // Add drawing to \PhpOffice\PhpSpreadsheet\Worksheet $this->worksheet = $pValue; $this->worksheet->getCell($this->coordinates); $this->worksheet->getDrawingCollection()->append($this); } else { if ($pOverrideOld) { - // Remove drawing from old \PhpSpreadsheet\Worksheet + // Remove drawing from old \PhpOffice\PhpSpreadsheet\Worksheet $iterator = $this->worksheet->getDrawingCollection()->getIterator(); while ($iterator->valid()) { @@ -233,10 +233,10 @@ class BaseDrawing implements \PhpSpreadsheet\IComparable } } - // Set new \PhpSpreadsheet\Worksheet + // Set new \PhpOffice\PhpSpreadsheet\Worksheet $this->setWorksheet($pValue); } else { - throw new \PhpSpreadsheet\Exception("A \PhpSpreadsheet\Worksheet has already been assigned. Drawings can only exist on one \PhpSpreadsheet\Worksheet."); + throw new \PhpOffice\PhpSpreadsheet\Exception("A \PhpOffice\PhpSpreadsheet\Worksheet has already been assigned. Drawings can only exist on one \PhpOffice\PhpSpreadsheet\Worksheet."); } } @@ -465,7 +465,7 @@ class BaseDrawing implements \PhpSpreadsheet\IComparable * Set Shadow * * @param Drawing\Shadow $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return BaseDrawing */ public function setShadow(Drawing\Shadow $pValue = null) diff --git a/src/PhpSpreadsheet/Worksheet/CellIterator.php b/src/PhpSpreadsheet/Worksheet/CellIterator.php index cbca32ca..57410766 100644 --- a/src/PhpSpreadsheet/Worksheet/CellIterator.php +++ b/src/PhpSpreadsheet/Worksheet/CellIterator.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -27,9 +27,9 @@ namespace PhpSpreadsheet\Worksheet; abstract class CellIterator { /** - * \PhpSpreadsheet\Worksheet to iterate + * \PhpOffice\PhpSpreadsheet\Worksheet to iterate * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ protected $subject; @@ -68,7 +68,7 @@ abstract class CellIterator /** * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ abstract protected function adjustForExistingOnlyRange(); @@ -76,7 +76,7 @@ abstract class CellIterator * Set the iterator to loop only existing cells * * @param bool $value - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function setIterateOnlyExistingCells($value = true) { diff --git a/src/PhpSpreadsheet/Worksheet/Column.php b/src/PhpSpreadsheet/Worksheet/Column.php index 32ebea12..9dcb4e9a 100644 --- a/src/PhpSpreadsheet/Worksheet/Column.php +++ b/src/PhpSpreadsheet/Worksheet/Column.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -27,9 +27,9 @@ namespace PhpSpreadsheet\Worksheet; class Column { /** - * \PhpSpreadsheet\Worksheet + * \PhpOffice\PhpSpreadsheet\Worksheet * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ private $parent; @@ -43,10 +43,10 @@ class Column /** * Create a new column * - * @param \PhpSpreadsheet\Worksheet $parent + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent * @param string $columnIndex */ - public function __construct(\PhpSpreadsheet\Worksheet $parent = null, $columnIndex = 'A') + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent = null, $columnIndex = 'A') { // Set parent and column index $this->parent = $parent; diff --git a/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php b/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php index 7cd71d35..ba52271b 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnCellIterator.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -50,16 +50,16 @@ class ColumnCellIterator extends CellIterator implements \Iterator /** * Create a new row iterator * - * @param \PhpSpreadsheet\Worksheet $subject The worksheet to iterate over + * @param \PhpOffice\PhpSpreadsheet\Worksheet $subject The worksheet to iterate over * @param string $columnIndex The column that we want to iterate * @param int $startRow The row number at which to start iterating * @param int $endRow Optionally, the row number at which to stop iterating */ - public function __construct(\PhpSpreadsheet\Worksheet $subject = null, $columnIndex = 'A', $startRow = 1, $endRow = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $subject = null, $columnIndex = 'A', $startRow = 1, $endRow = null) { // Set subject $this->subject = $subject; - $this->columnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($columnIndex) - 1; + $this->columnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($columnIndex) - 1; $this->resetEnd($endRow); $this->resetStart($startRow); } @@ -76,7 +76,7 @@ class ColumnCellIterator extends CellIterator implements \Iterator * (Re)Set the start row and the current row pointer * * @param int $startRow The row number at which to start iterating - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return ColumnCellIterator */ public function resetStart($startRow = 1) @@ -92,7 +92,7 @@ class ColumnCellIterator extends CellIterator implements \Iterator * (Re)Set the end row * * @param int $endRow The row number at which to stop iterating - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return ColumnCellIterator */ public function resetEnd($endRow = null) @@ -107,15 +107,15 @@ class ColumnCellIterator extends CellIterator implements \Iterator * Set the row pointer to the selected row * * @param int $row The row number to set the current pointer at - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return ColumnCellIterator */ public function seek($row = 1) { if (($row < $this->startRow) || ($row > $this->endRow)) { - throw new \PhpSpreadsheet\Exception("Row $row is out of range ({$this->startRow} - {$this->endRow})"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Row $row is out of range ({$this->startRow} - {$this->endRow})"); } elseif ($this->onlyExistingCells && !($this->subject->cellExistsByColumnAndRow($this->columnIndex, $row))) { - throw new \PhpSpreadsheet\Exception('In "IterateOnlyExistingCells" mode and Cell does not exist'); + throw new \PhpOffice\PhpSpreadsheet\Exception('In "IterateOnlyExistingCells" mode and Cell does not exist'); } $this->position = $row; @@ -133,7 +133,7 @@ class ColumnCellIterator extends CellIterator implements \Iterator /** * Return the current cell in this worksheet column * - * @return null|\PhpSpreadsheet\Cell + * @return null|\PhpOffice\PhpSpreadsheet\Cell */ public function current() { @@ -168,7 +168,7 @@ class ColumnCellIterator extends CellIterator implements \Iterator public function prev() { if ($this->position <= $this->startRow) { - throw new \PhpSpreadsheet\Exception("Row is already at the beginning of range ({$this->startRow} - {$this->endRow})"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Row is already at the beginning of range ({$this->startRow} - {$this->endRow})"); } do { @@ -191,7 +191,7 @@ class ColumnCellIterator extends CellIterator implements \Iterator /** * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function adjustForExistingOnlyRange() { @@ -201,14 +201,14 @@ class ColumnCellIterator extends CellIterator implements \Iterator ++$this->startRow; } if ($this->startRow > $this->endRow) { - throw new \PhpSpreadsheet\Exception('No cells exist within the specified range'); + throw new \PhpOffice\PhpSpreadsheet\Exception('No cells exist within the specified range'); } while ((!$this->subject->cellExistsByColumnAndRow($this->columnIndex, $this->endRow)) && ($this->endRow >= $this->startRow)) { --$this->endRow; } if ($this->endRow < $this->startRow) { - throw new \PhpSpreadsheet\Exception('No cells exist within the specified range'); + throw new \PhpOffice\PhpSpreadsheet\Exception('No cells exist within the specified range'); } } } diff --git a/src/PhpSpreadsheet/Worksheet/ColumnDimension.php b/src/PhpSpreadsheet/Worksheet/ColumnDimension.php index 5381c8b5..b8b0294e 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnDimension.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnDimension.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Worksheet/ColumnIterator.php b/src/PhpSpreadsheet/Worksheet/ColumnIterator.php index 61731bf2..6a5c5e08 100644 --- a/src/PhpSpreadsheet/Worksheet/ColumnIterator.php +++ b/src/PhpSpreadsheet/Worksheet/ColumnIterator.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Cell; -use PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Cell; +use PhpOffice\PhpSpreadsheet\Exception; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -30,9 +30,9 @@ use PhpSpreadsheet\Exception; class ColumnIterator implements \Iterator { /** - * \PhpSpreadsheet\Worksheet to iterate + * \PhpOffice\PhpSpreadsheet\Worksheet to iterate * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ private $subject; @@ -60,11 +60,11 @@ class ColumnIterator implements \Iterator /** * Create a new column iterator * - * @param \PhpSpreadsheet\Worksheet $subject The worksheet to iterate over + * @param \PhpOffice\PhpSpreadsheet\Worksheet $subject The worksheet to iterate over * @param string $startColumn The column address at which to start iterating * @param string $endColumn Optionally, the column address at which to stop iterating */ - public function __construct(\PhpSpreadsheet\Worksheet $subject, $startColumn = 'A', $endColumn = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $subject, $startColumn = 'A', $endColumn = null) { // Set subject $this->subject = $subject; @@ -89,7 +89,7 @@ class ColumnIterator implements \Iterator */ public function resetStart($startColumn = 'A') { - $startColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($startColumn) - 1; + $startColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($startColumn) - 1; if ($startColumnIndex > Cell::columnIndexFromString($this->subject->getHighestColumn()) - 1) { throw new Exception("Start column ({$startColumn}) is beyond highest column ({$this->subject->getHighestColumn()})"); } @@ -112,7 +112,7 @@ class ColumnIterator implements \Iterator public function resetEnd($endColumn = null) { $endColumn = ($endColumn) ? $endColumn : $this->subject->getHighestColumn(); - $this->endColumn = \PhpSpreadsheet\Cell::columnIndexFromString($endColumn) - 1; + $this->endColumn = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($endColumn) - 1; return $this; } @@ -121,14 +121,14 @@ class ColumnIterator implements \Iterator * Set the column pointer to the selected column * * @param string $column The column address to set the current pointer at - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return ColumnIterator */ public function seek($column = 'A') { - $column = \PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; + $column = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; if (($column < $this->startColumn) || ($column > $this->endColumn)) { - throw new \PhpSpreadsheet\Exception("Column $column is out of range ({$this->startColumn} - {$this->endColumn})"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Column $column is out of range ({$this->startColumn} - {$this->endColumn})"); } $this->position = $column; @@ -150,7 +150,7 @@ class ColumnIterator implements \Iterator */ public function current() { - return new Column($this->subject, \PhpSpreadsheet\Cell::stringFromColumnIndex($this->position)); + return new Column($this->subject, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->position)); } /** @@ -160,7 +160,7 @@ class ColumnIterator implements \Iterator */ public function key() { - return \PhpSpreadsheet\Cell::stringFromColumnIndex($this->position); + return \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->position); } /** @@ -174,15 +174,15 @@ class ColumnIterator implements \Iterator /** * Set the iterator to its previous value * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function prev() { if ($this->position <= $this->startColumn) { - throw new \PhpSpreadsheet\Exception( + throw new \PhpOffice\PhpSpreadsheet\Exception( 'Column is already at the beginning of range (' . - \PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ' - ' . - \PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ')' + \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ' - ' . + \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ')' ); } diff --git a/src/PhpSpreadsheet/Worksheet/Dimension.php b/src/PhpSpreadsheet/Worksheet/Dimension.php index 72477f95..de14d317 100644 --- a/src/PhpSpreadsheet/Worksheet/Dimension.php +++ b/src/PhpSpreadsheet/Worksheet/Dimension.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -104,13 +104,13 @@ abstract class Dimension * Value must be between 0 and 7 * * @param int $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Dimension */ public function setOutlineLevel($pValue) { if ($pValue < 0 || $pValue > 7) { - throw new \PhpSpreadsheet\Exception('Outline level must range between 0 and 7.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Outline level must range between 0 and 7.'); } $this->outlineLevel = $pValue; diff --git a/src/PhpSpreadsheet/Worksheet/Drawing.php b/src/PhpSpreadsheet/Worksheet/Drawing.php index 1f716311..10da155e 100644 --- a/src/PhpSpreadsheet/Worksheet/Drawing.php +++ b/src/PhpSpreadsheet/Worksheet/Drawing.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Worksheet; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Drawing extends BaseDrawing implements \PhpSpreadsheet\IComparable +class Drawing extends BaseDrawing implements \PhpOffice\PhpSpreadsheet\IComparable { /** * Path @@ -95,7 +95,7 @@ class Drawing extends BaseDrawing implements \PhpSpreadsheet\IComparable * * @param string $pValue File path * @param bool $pVerifyFile Verify file - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Drawing */ public function setPath($pValue = '', $pVerifyFile = true) @@ -109,7 +109,7 @@ class Drawing extends BaseDrawing implements \PhpSpreadsheet\IComparable list($this->width, $this->height) = getimagesize($pValue); } } else { - throw new \PhpSpreadsheet\Exception("File $pValue not found!"); + throw new \PhpOffice\PhpSpreadsheet\Exception("File $pValue not found!"); } } else { $this->path = $pValue; diff --git a/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php b/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php index b4d6cb93..82d9bd89 100644 --- a/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php +++ b/src/PhpSpreadsheet/Worksheet/Drawing/Shadow.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet\Drawing; +namespace PhpOffice\PhpSpreadsheet\Worksheet\Drawing; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Worksheet\Drawing; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Shadow implements \PhpSpreadsheet\IComparable +class Shadow implements \PhpOffice\PhpSpreadsheet\IComparable { /* Shadow alignment */ const SHADOW_BOTTOM = 'b'; @@ -78,7 +78,7 @@ class Shadow implements \PhpSpreadsheet\IComparable /** * Color * - * @var \PhpSpreadsheet\Style\Color + * @var \PhpOffice\PhpSpreadsheet\Style\Color */ private $color; @@ -100,7 +100,7 @@ class Shadow implements \PhpSpreadsheet\IComparable $this->distance = 2; $this->direction = 0; $this->alignment = self::SHADOW_BOTTOM_RIGHT; - $this->color = new \PhpSpreadsheet\Style\Color(\PhpSpreadsheet\Style\Color::COLOR_BLACK); + $this->color = new \PhpOffice\PhpSpreadsheet\Style\Color(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_BLACK); $this->alpha = 50; } @@ -222,7 +222,7 @@ class Shadow implements \PhpSpreadsheet\IComparable /** * Get Color * - * @return \PhpSpreadsheet\Style\Color + * @return \PhpOffice\PhpSpreadsheet\Style\Color */ public function getColor() { @@ -232,11 +232,11 @@ class Shadow implements \PhpSpreadsheet\IComparable /** * Set Color * - * @param \PhpSpreadsheet\Style\Color $pValue - * @throws \PhpSpreadsheet\Exception + * @param \PhpOffice\PhpSpreadsheet\Style\Color $pValue + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return Shadow */ - public function setColor(\PhpSpreadsheet\Style\Color $pValue = null) + public function setColor(\PhpOffice\PhpSpreadsheet\Style\Color $pValue = null) { $this->color = $pValue; diff --git a/src/PhpSpreadsheet/Worksheet/HeaderFooter.php b/src/PhpSpreadsheet/Worksheet/HeaderFooter.php index 8dd777cd..17dcae1e 100644 --- a/src/PhpSpreadsheet/Worksheet/HeaderFooter.php +++ b/src/PhpSpreadsheet/Worksheet/HeaderFooter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -413,7 +413,7 @@ class HeaderFooter * * @param HeaderFooterDrawing $image * @param string $location - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return HeaderFooter */ public function addImage(HeaderFooterDrawing $image = null, $location = self::IMAGE_HEADER_LEFT) @@ -427,7 +427,7 @@ class HeaderFooter * Remove header/footer image * * @param string $location - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return HeaderFooter */ public function removeImage($location = self::IMAGE_HEADER_LEFT) @@ -443,13 +443,13 @@ class HeaderFooter * Set header/footer images * * @param HeaderFooterDrawing[] $images - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return HeaderFooter */ public function setImages($images) { if (!is_array($images)) { - throw new \PhpSpreadsheet\Exception('Invalid parameter!'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid parameter!'); } $this->headerFooterImages = $images; diff --git a/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php b/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php index 70767072..f10a995a 100644 --- a/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php +++ b/src/PhpSpreadsheet/Worksheet/HeaderFooterDrawing.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Worksheet; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class HeaderFooterDrawing extends Drawing implements \PhpSpreadsheet\IComparable +class HeaderFooterDrawing extends Drawing implements \PhpOffice\PhpSpreadsheet\IComparable { /** * Path @@ -309,7 +309,7 @@ class HeaderFooterDrawing extends Drawing implements \PhpSpreadsheet\IComparable * * @param string $pValue File path * @param bool $pVerifyFile Verify file - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return HeaderFooterDrawing */ public function setPath($pValue = '', $pVerifyFile = true) @@ -323,7 +323,7 @@ class HeaderFooterDrawing extends Drawing implements \PhpSpreadsheet\IComparable list($this->width, $this->height) = getimagesize($pValue); } } else { - throw new \PhpSpreadsheet\Exception("File $pValue not found!"); + throw new \PhpOffice\PhpSpreadsheet\Exception("File $pValue not found!"); } } else { $this->path = $pValue; diff --git a/src/PhpSpreadsheet/Worksheet/Iterator.php b/src/PhpSpreadsheet/Worksheet/Iterator.php index 1a6ab714..f5ace74f 100644 --- a/src/PhpSpreadsheet/Worksheet/Iterator.php +++ b/src/PhpSpreadsheet/Worksheet/Iterator.php @@ -1,10 +1,8 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** - * PhpSpreadsheet\Worksheet\Iterator - * * Copyright (c) 2006 - 2016 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -31,7 +29,7 @@ class Iterator implements \Iterator /** * Spreadsheet to iterate * - * @var \PhpSpreadsheet\Spreadsheet + * @var \PhpOffice\PhpSpreadsheet\Spreadsheet */ private $subject; @@ -45,9 +43,9 @@ class Iterator implements \Iterator /** * Create a new worksheet iterator * - * @param \PhpSpreadsheet\Spreadsheet $subject + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $subject */ - public function __construct(\PhpSpreadsheet\Spreadsheet $subject = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $subject = null) { // Set subject $this->subject = $subject; @@ -72,7 +70,7 @@ class Iterator implements \Iterator /** * Current Worksheet * - * @return \PhpSpreadsheet\Worksheet + * @return \PhpOffice\PhpSpreadsheet\Worksheet */ public function current() { diff --git a/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php b/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php index ae6957c1..b880b4fd 100644 --- a/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php +++ b/src/PhpSpreadsheet/Worksheet/MemoryDrawing.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Worksheet; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class MemoryDrawing extends BaseDrawing implements \PhpSpreadsheet\IComparable +class MemoryDrawing extends BaseDrawing implements \PhpOffice\PhpSpreadsheet\IComparable { /* Rendering functions */ const RENDERING_DEFAULT = 'imagepng'; diff --git a/src/PhpSpreadsheet/Worksheet/PageMargins.php b/src/PhpSpreadsheet/Worksheet/PageMargins.php index 5b2bc85b..56016eac 100644 --- a/src/PhpSpreadsheet/Worksheet/PageMargins.php +++ b/src/PhpSpreadsheet/Worksheet/PageMargins.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Worksheet/PageSetup.php b/src/PhpSpreadsheet/Worksheet/PageSetup.php index 5eb7598b..03b0daef 100644 --- a/src/PhpSpreadsheet/Worksheet/PageSetup.php +++ b/src/PhpSpreadsheet/Worksheet/PageSetup.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -338,7 +338,7 @@ class PageSetup * * @param int? $pValue * @param bool $pUpdate Update fitToPage so scaling applies rather than fitToHeight / fitToWidth - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return PageSetup */ public function setScale($pValue = 100, $pUpdate = true) @@ -351,7 +351,7 @@ class PageSetup $this->fitToPage = false; } } else { - throw new \PhpSpreadsheet\Exception('Scale must not be negative'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Scale must not be negative'); } return $this; @@ -597,7 +597,7 @@ class PageSetup * Default behaviour, or a index value of 0, will return all ranges as a comma-separated string * Otherwise, the specific range identified by the value of $index will be returned * Print areas are numbered from 1 - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return string */ public function getPrintArea($index = 0) @@ -609,7 +609,7 @@ class PageSetup if (isset($printAreas[$index - 1])) { return $printAreas[$index - 1]; } - throw new \PhpSpreadsheet\Exception('Requested Print Area does not exist'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Requested Print Area does not exist'); } /** @@ -672,17 +672,17 @@ class PageSetup * @param string $method Determines the method used when setting multiple print areas * Default behaviour, or the "O" method, overwrites existing print area * The "I" method, inserts the new print area before any specified index, or at the end of the list - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return PageSetup */ public function setPrintArea($value, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE) { if (strpos($value, '!') !== false) { - throw new \PhpSpreadsheet\Exception('Cell coordinate must not specify a worksheet.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell coordinate must not specify a worksheet.'); } elseif (strpos($value, ':') === false) { - throw new \PhpSpreadsheet\Exception('Cell coordinate must be a range of cells.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell coordinate must be a range of cells.'); } elseif (strpos($value, '$') !== false) { - throw new \PhpSpreadsheet\Exception('Cell coordinate must not be absolute.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Cell coordinate must not be absolute.'); } $value = strtoupper($value); @@ -695,7 +695,7 @@ class PageSetup $index = count($printAreas) - abs($index) + 1; } if (($index <= 0) || ($index > count($printAreas))) { - throw new \PhpSpreadsheet\Exception('Invalid index for setting print range.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid index for setting print range.'); } $printAreas[$index - 1] = $value; $this->printArea = implode(',', $printAreas); @@ -709,13 +709,13 @@ class PageSetup $index = abs($index) - 1; } if ($index > count($printAreas)) { - throw new \PhpSpreadsheet\Exception('Invalid index for setting print range.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid index for setting print range.'); } $printAreas = array_merge(array_slice($printAreas, 0, $index), [$value], array_slice($printAreas, $index)); $this->printArea = implode(',', $printAreas); } } else { - throw new \PhpSpreadsheet\Exception('Invalid method for setting print range.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid method for setting print range.'); } return $this; @@ -731,7 +731,7 @@ class PageSetup * Specifying an index value of 0, will always append the new print range at the end of the * list. * Print areas are numbered from 1 - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return PageSetup */ public function addPrintArea($value, $index = -1) @@ -759,13 +759,13 @@ class PageSetup * @param string $method Determines the method used when setting multiple print areas * Default behaviour, or the "O" method, overwrites existing print area * The "I" method, inserts the new print area before any specified index, or at the end of the list - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return PageSetup */ public function setPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = 0, $method = self::SETPRINTRANGE_OVERWRITE) { return $this->setPrintArea( - \PhpSpreadsheet\Cell::stringFromColumnIndex($column1) . $row1 . ':' . \PhpSpreadsheet\Cell::stringFromColumnIndex($column2) . $row2, + \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column1) . $row1 . ':' . \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column2) . $row2, $index, $method ); @@ -784,13 +784,13 @@ class PageSetup * Specifying an index value of 0, will always append the new print range at the end of the * list. * Print areas are numbered from 1 - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return PageSetup */ public function addPrintAreaByColumnAndRow($column1, $row1, $column2, $row2, $index = -1) { return $this->setPrintArea( - \PhpSpreadsheet\Cell::stringFromColumnIndex($column1) . $row1 . ':' . \PhpSpreadsheet\Cell::stringFromColumnIndex($column2) . $row2, + \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column1) . $row1 . ':' . \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column2) . $row2, $index, self::SETPRINTRANGE_INSERT ); diff --git a/src/PhpSpreadsheet/Worksheet/Protection.php b/src/PhpSpreadsheet/Worksheet/Protection.php index fe8821a1..40d6f5e2 100644 --- a/src/PhpSpreadsheet/Worksheet/Protection.php +++ b/src/PhpSpreadsheet/Worksheet/Protection.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -565,7 +565,7 @@ class Protection public function setPassword($pValue = '', $pAlreadyHashed = false) { if (!$pAlreadyHashed) { - $pValue = \PhpSpreadsheet\Shared\PasswordHasher::hashPassword($pValue); + $pValue = \PhpOffice\PhpSpreadsheet\Shared\PasswordHasher::hashPassword($pValue); } $this->password = $pValue; diff --git a/src/PhpSpreadsheet/Worksheet/Row.php b/src/PhpSpreadsheet/Worksheet/Row.php index 54f18704..3806a645 100644 --- a/src/PhpSpreadsheet/Worksheet/Row.php +++ b/src/PhpSpreadsheet/Worksheet/Row.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -27,9 +27,9 @@ namespace PhpSpreadsheet\Worksheet; class Row { /** - * \PhpSpreadsheet\Worksheet + * \PhpOffice\PhpSpreadsheet\Worksheet * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ private $parent; @@ -43,10 +43,10 @@ class Row /** * Create a new row * - * @param \PhpSpreadsheet\Worksheet $parent + * @param \PhpOffice\PhpSpreadsheet\Worksheet $parent * @param int $rowIndex */ - public function __construct(\PhpSpreadsheet\Worksheet $parent = null, $rowIndex = 1) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $parent = null, $rowIndex = 1) { // Set parent and row index $this->parent = $parent; diff --git a/src/PhpSpreadsheet/Worksheet/RowCellIterator.php b/src/PhpSpreadsheet/Worksheet/RowCellIterator.php index e935d2f5..41456350 100644 --- a/src/PhpSpreadsheet/Worksheet/RowCellIterator.php +++ b/src/PhpSpreadsheet/Worksheet/RowCellIterator.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -50,12 +50,12 @@ class RowCellIterator extends CellIterator implements \Iterator /** * Create a new column iterator * - * @param \PhpSpreadsheet\Worksheet $subject The worksheet to iterate over + * @param \PhpOffice\PhpSpreadsheet\Worksheet $subject The worksheet to iterate over * @param int $rowIndex The row that we want to iterate * @param string $startColumn The column address at which to start iterating * @param string $endColumn Optionally, the column address at which to stop iterating */ - public function __construct(\PhpSpreadsheet\Worksheet $subject = null, $rowIndex = 1, $startColumn = 'A', $endColumn = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $subject = null, $rowIndex = 1, $startColumn = 'A', $endColumn = null) { // Set subject and row index $this->subject = $subject; @@ -76,15 +76,15 @@ class RowCellIterator extends CellIterator implements \Iterator * (Re)Set the start column and the current column pointer * * @param int $startColumn The column address at which to start iterating - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return RowCellIterator */ public function resetStart($startColumn = 'A') { - $startColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($startColumn) - 1; + $startColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($startColumn) - 1; $this->startColumn = $startColumnIndex; $this->adjustForExistingOnlyRange(); - $this->seek(\PhpSpreadsheet\Cell::stringFromColumnIndex($this->startColumn)); + $this->seek(\PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->startColumn)); return $this; } @@ -93,13 +93,13 @@ class RowCellIterator extends CellIterator implements \Iterator * (Re)Set the end column * * @param string $endColumn The column address at which to stop iterating - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return RowCellIterator */ public function resetEnd($endColumn = null) { $endColumn = ($endColumn) ? $endColumn : $this->subject->getHighestColumn(); - $this->endColumn = \PhpSpreadsheet\Cell::columnIndexFromString($endColumn) - 1; + $this->endColumn = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($endColumn) - 1; $this->adjustForExistingOnlyRange(); return $this; @@ -109,16 +109,16 @@ class RowCellIterator extends CellIterator implements \Iterator * Set the column pointer to the selected column * * @param string $column The column address to set the current pointer at - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return RowCellIterator */ public function seek($column = 'A') { - $column = \PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; + $column = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; if (($column < $this->startColumn) || ($column > $this->endColumn)) { - throw new \PhpSpreadsheet\Exception("Column $column is out of range ({$this->startColumn} - {$this->endColumn})"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Column $column is out of range ({$this->startColumn} - {$this->endColumn})"); } elseif ($this->onlyExistingCells && !($this->subject->cellExistsByColumnAndRow($column, $this->rowIndex))) { - throw new \PhpSpreadsheet\Exception('In "IterateOnlyExistingCells" mode and Cell does not exist'); + throw new \PhpOffice\PhpSpreadsheet\Exception('In "IterateOnlyExistingCells" mode and Cell does not exist'); } $this->position = $column; @@ -136,7 +136,7 @@ class RowCellIterator extends CellIterator implements \Iterator /** * Return the current cell in this worksheet row * - * @return \PhpSpreadsheet\Cell + * @return \PhpOffice\PhpSpreadsheet\Cell */ public function current() { @@ -150,7 +150,7 @@ class RowCellIterator extends CellIterator implements \Iterator */ public function key() { - return \PhpSpreadsheet\Cell::stringFromColumnIndex($this->position); + return \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->position); } /** @@ -168,15 +168,15 @@ class RowCellIterator extends CellIterator implements \Iterator /** * Set the iterator to its previous value * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function prev() { if ($this->position <= $this->startColumn) { - throw new \PhpSpreadsheet\Exception( + throw new \PhpOffice\PhpSpreadsheet\Exception( 'Column is already at the beginning of range (' . - \PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ' - ' . - \PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ')' + \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ' - ' . + \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($this->endColumn) . ')' ); } @@ -200,7 +200,7 @@ class RowCellIterator extends CellIterator implements \Iterator /** * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ protected function adjustForExistingOnlyRange() { @@ -210,14 +210,14 @@ class RowCellIterator extends CellIterator implements \Iterator ++$this->startColumn; } if ($this->startColumn > $this->endColumn) { - throw new \PhpSpreadsheet\Exception('No cells exist within the specified range'); + throw new \PhpOffice\PhpSpreadsheet\Exception('No cells exist within the specified range'); } while ((!$this->subject->cellExistsByColumnAndRow($this->endColumn, $this->rowIndex)) && ($this->endColumn >= $this->startColumn)) { --$this->endColumn; } if ($this->endColumn < $this->startColumn) { - throw new \PhpSpreadsheet\Exception('No cells exist within the specified range'); + throw new \PhpOffice\PhpSpreadsheet\Exception('No cells exist within the specified range'); } } } diff --git a/src/PhpSpreadsheet/Worksheet/RowDimension.php b/src/PhpSpreadsheet/Worksheet/RowDimension.php index 34850847..15587e6c 100644 --- a/src/PhpSpreadsheet/Worksheet/RowDimension.php +++ b/src/PhpSpreadsheet/Worksheet/RowDimension.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Worksheet/RowIterator.php b/src/PhpSpreadsheet/Worksheet/RowIterator.php index d6234af3..58bd8403 100644 --- a/src/PhpSpreadsheet/Worksheet/RowIterator.php +++ b/src/PhpSpreadsheet/Worksheet/RowIterator.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -27,9 +27,9 @@ namespace PhpSpreadsheet\Worksheet; class RowIterator implements \Iterator { /** - * \PhpSpreadsheet\Worksheet to iterate + * \PhpOffice\PhpSpreadsheet\Worksheet to iterate * - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ private $subject; @@ -57,11 +57,11 @@ class RowIterator implements \Iterator /** * Create a new row iterator * - * @param \PhpSpreadsheet\Worksheet $subject The worksheet to iterate over + * @param \PhpOffice\PhpSpreadsheet\Worksheet $subject The worksheet to iterate over * @param int $startRow The row number at which to start iterating * @param int $endRow Optionally, the row number at which to stop iterating */ - public function __construct(\PhpSpreadsheet\Worksheet $subject, $startRow = 1, $endRow = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Worksheet $subject, $startRow = 1, $endRow = null) { // Set subject $this->subject = $subject; @@ -81,13 +81,13 @@ class RowIterator implements \Iterator * (Re)Set the start row and the current row pointer * * @param int $startRow The row number at which to start iterating - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return RowIterator */ public function resetStart($startRow = 1) { if ($startRow > $this->subject->getHighestRow()) { - throw new \PhpSpreadsheet\Exception("Start row ({$startRow}) is beyond highest row ({$this->subject->getHighestRow()})"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Start row ({$startRow}) is beyond highest row ({$this->subject->getHighestRow()})"); } $this->startRow = $startRow; @@ -116,13 +116,13 @@ class RowIterator implements \Iterator * Set the row pointer to the selected row * * @param int $row The row number to set the current pointer at - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return RowIterator */ public function seek($row = 1) { if (($row < $this->startRow) || ($row > $this->endRow)) { - throw new \PhpSpreadsheet\Exception("Row $row is out of range ({$this->startRow} - {$this->endRow})"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Row $row is out of range ({$this->startRow} - {$this->endRow})"); } $this->position = $row; @@ -168,12 +168,12 @@ class RowIterator implements \Iterator /** * Set the iterator to its previous value * - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception */ public function prev() { if ($this->position <= $this->startRow) { - throw new \PhpSpreadsheet\Exception("Row is already at the beginning of range ({$this->startRow} - {$this->endRow})"); + throw new \PhpOffice\PhpSpreadsheet\Exception("Row is already at the beginning of range ({$this->startRow} - {$this->endRow})"); } --$this->position; diff --git a/src/PhpSpreadsheet/Worksheet/SheetView.php b/src/PhpSpreadsheet/Worksheet/SheetView.php index a5130296..f8be8833 100644 --- a/src/PhpSpreadsheet/Worksheet/SheetView.php +++ b/src/PhpSpreadsheet/Worksheet/SheetView.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Worksheet; +namespace PhpOffice\PhpSpreadsheet\Worksheet; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -87,7 +87,7 @@ class SheetView * Valid values range from 10 to 400. * * @param int $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return SheetView */ public function setZoomScale($pValue = 100) @@ -97,7 +97,7 @@ class SheetView if (($pValue >= 1) || is_null($pValue)) { $this->zoomScale = $pValue; } else { - throw new \PhpSpreadsheet\Exception('Scale must be greater than or equal to 1.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Scale must be greater than or equal to 1.'); } return $this; @@ -119,7 +119,7 @@ class SheetView * Valid values range from 10 to 400. * * @param int $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return SheetView */ public function setZoomScaleNormal($pValue = 100) @@ -127,7 +127,7 @@ class SheetView if (($pValue >= 1) || is_null($pValue)) { $this->zoomScaleNormal = $pValue; } else { - throw new \PhpSpreadsheet\Exception('Scale must be greater than or equal to 1.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Scale must be greater than or equal to 1.'); } return $this; @@ -152,7 +152,7 @@ class SheetView * 'pageBreakPreview' self::SHEETVIEW_PAGE_BREAK_PREVIEW * * @param string $pValue - * @throws \PhpSpreadsheet\Exception + * @throws \PhpOffice\PhpSpreadsheet\Exception * @return SheetView */ public function setView($pValue = null) @@ -164,7 +164,7 @@ class SheetView if (in_array($pValue, self::$sheetViewTypes)) { $this->sheetviewType = $pValue; } else { - throw new \PhpSpreadsheet\Exception('Invalid sheetview layout type.'); + throw new \PhpOffice\PhpSpreadsheet\Exception('Invalid sheetview layout type.'); } return $this; diff --git a/src/PhpSpreadsheet/Writer/BaseWriter.php b/src/PhpSpreadsheet/Writer/BaseWriter.php index 9e6836e4..4008a09a 100644 --- a/src/PhpSpreadsheet/Writer/BaseWriter.php +++ b/src/PhpSpreadsheet/Writer/BaseWriter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet diff --git a/src/PhpSpreadsheet/Writer/CSV.php b/src/PhpSpreadsheet/Writer/CSV.php index 20ebdc17..36c34cbf 100644 --- a/src/PhpSpreadsheet/Writer/CSV.php +++ b/src/PhpSpreadsheet/Writer/CSV.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -86,9 +86,9 @@ class CSV extends BaseWriter implements IWriter /** * Create a new CSV * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { $this->spreadsheet = $spreadsheet; } @@ -104,10 +104,10 @@ class CSV extends BaseWriter implements IWriter // Fetch sheet $sheet = $this->spreadsheet->getSheet($this->sheetIndex); - $saveDebugLog = \PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog(); - \PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false); - $saveArrayReturnType = \PhpSpreadsheet\Calculation::getArrayReturnType(); - \PhpSpreadsheet\Calculation::setArrayReturnType(\PhpSpreadsheet\Calculation::RETURN_ARRAY_AS_VALUE); + $saveDebugLog = \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog(); + \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false); + $saveArrayReturnType = \PhpOffice\PhpSpreadsheet\Calculation::getArrayReturnType(); + \PhpOffice\PhpSpreadsheet\Calculation::setArrayReturnType(\PhpOffice\PhpSpreadsheet\Calculation::RETURN_ARRAY_AS_VALUE); // Open file $fileHandle = fopen($pFilename, 'wb+'); @@ -146,8 +146,8 @@ class CSV extends BaseWriter implements IWriter // Close file fclose($fileHandle); - \PhpSpreadsheet\Calculation::setArrayReturnType($saveArrayReturnType); - \PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog); + \PhpOffice\PhpSpreadsheet\Calculation::setArrayReturnType($saveArrayReturnType); + \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog); } /** diff --git a/src/PhpSpreadsheet/Writer/Excel2007.php b/src/PhpSpreadsheet/Writer/Excel2007.php index 1008cf09..48243b56 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007.php +++ b/src/PhpSpreadsheet/Writer/Excel2007.php @@ -1,12 +1,10 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** - * PhpSpreadsheet\Writer\Excel2007 - * * Copyright (c) 2006 - 2015 PhpSpreadsheet * * This library is free software; you can redistribute it and/or @@ -47,7 +45,7 @@ class Excel2007 extends BaseWriter implements IWriter /** * Private Spreadsheet * - * @var \PhpSpreadsheet\Spreadsheet + * @var \PhpOffice\PhpSpreadsheet\Spreadsheet */ private $spreadSheet; @@ -59,78 +57,78 @@ class Excel2007 extends BaseWriter implements IWriter private $stringTable = []; /** - * Private unique \PhpSpreadsheet\Style\Conditional HashTable + * Private unique \PhpOffice\PhpSpreadsheet\Style\Conditional HashTable * - * @var \PhpSpreadsheet\HashTable + * @var \PhpOffice\PhpSpreadsheet\HashTable */ private $stylesConditionalHashTable; /** - * Private unique \PhpSpreadsheet\Style HashTable + * Private unique \PhpOffice\PhpSpreadsheet\Style HashTable * - * @var \PhpSpreadsheet\HashTable + * @var \PhpOffice\PhpSpreadsheet\HashTable */ private $styleHashTable; /** - * Private unique \PhpSpreadsheet\Style\Fill HashTable + * Private unique \PhpOffice\PhpSpreadsheet\Style\Fill HashTable * - * @var \PhpSpreadsheet\HashTable + * @var \PhpOffice\PhpSpreadsheet\HashTable */ private $fillHashTable; /** - * Private unique \PhpSpreadsheet\Style\Font HashTable + * Private unique \PhpOffice\PhpSpreadsheet\Style\Font HashTable * - * @var \PhpSpreadsheet\HashTable + * @var \PhpOffice\PhpSpreadsheet\HashTable */ private $fontHashTable; /** - * Private unique \PhpSpreadsheet\Style\Borders HashTable + * Private unique \PhpOffice\PhpSpreadsheet\Style\Borders HashTable * - * @var \PhpSpreadsheet\HashTable + * @var \PhpOffice\PhpSpreadsheet\HashTable */ private $bordersHashTable; /** - * Private unique \PhpSpreadsheet\Style\NumberFormat HashTable + * Private unique \PhpOffice\PhpSpreadsheet\Style\NumberFormat HashTable * - * @var \PhpSpreadsheet\HashTable + * @var \PhpOffice\PhpSpreadsheet\HashTable */ private $numFmtHashTable; /** - * Private unique \PhpSpreadsheet\Worksheet\BaseDrawing HashTable + * Private unique \PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing HashTable * - * @var \PhpSpreadsheet\HashTable + * @var \PhpOffice\PhpSpreadsheet\HashTable */ private $drawingHashTable; /** * Create a new Excel2007 Writer * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet = null) { // Assign PhpSpreadsheet $this->setSpreadsheet($spreadsheet); $writerPartsArray = [ - 'stringtable' => '\\PhpSpreadsheet\\Writer\\Excel2007\\StringTable', - 'contenttypes' => '\\PhpSpreadsheet\\Writer\\Excel2007\\ContentTypes', - 'docprops' => '\\PhpSpreadsheet\\Writer\\Excel2007\\DocProps', - 'rels' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Rels', - 'theme' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Theme', - 'style' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Style', - 'workbook' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Workbook', - 'worksheet' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Worksheet', - 'drawing' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Drawing', - 'comments' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Comments', - 'chart' => '\\PhpSpreadsheet\\Writer\\Excel2007\\Chart', - 'relsvba' => '\\PhpSpreadsheet\\Writer\\Excel2007\\RelsVBA', - 'relsribbonobjects' => '\\PhpSpreadsheet\\Writer\\Excel2007\\RelsRibbon', + 'stringtable' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\StringTable', + 'contenttypes' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\ContentTypes', + 'docprops' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\DocProps', + 'rels' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Rels', + 'theme' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Theme', + 'style' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Style', + 'workbook' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Workbook', + 'worksheet' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Worksheet', + 'drawing' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Drawing', + 'comments' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Comments', + 'chart' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\Chart', + 'relsvba' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\RelsVBA', + 'relsribbonobjects' => '\\PhpOffice\\PhpSpreadsheet\\Writer\\Excel2007\\RelsRibbon', ]; // Initialise writer parts @@ -146,7 +144,7 @@ class Excel2007 extends BaseWriter implements IWriter // Set HashTable variables foreach ($hashTablesArray as $tableName) { - $this->$tableName = new \PhpSpreadsheet\HashTable(); + $this->$tableName = new \PhpOffice\PhpSpreadsheet\HashTable(); } } @@ -154,7 +152,7 @@ class Excel2007 extends BaseWriter implements IWriter * Get writer part * * @param string $pPartName Writer part name - * @return \PhpSpreadsheet\Writer\Excel2007\WriterPart + * @return \PhpOffice\PhpSpreadsheet\Writer\Excel2007\WriterPart */ public function getWriterPart($pPartName = '') { @@ -169,7 +167,7 @@ class Excel2007 extends BaseWriter implements IWriter * Save PhpSpreadsheet to file * * @param string $pFilename - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { @@ -180,16 +178,16 @@ class Excel2007 extends BaseWriter implements IWriter // If $pFilename is php://output or php://stdout, make it a temporary file... $originalFilename = $pFilename; if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { - $pFilename = @tempnam(\PhpSpreadsheet\Shared\File::sysGetTempDir(), 'phpxltmp'); + $pFilename = @tempnam(\PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir(), 'phpxltmp'); if ($pFilename == '') { $pFilename = $originalFilename; } } - $saveDebugLog = \PhpSpreadsheet\Calculation::getInstance($this->spreadSheet)->getDebugLog()->getWriteDebugLog(); - \PhpSpreadsheet\Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog(false); - $saveDateReturnType = \PhpSpreadsheet\Calculation\Functions::getReturnDateType(); - \PhpSpreadsheet\Calculation\Functions::setReturnDateType(\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL); + $saveDebugLog = \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadSheet)->getDebugLog()->getWriteDebugLog(); + \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog(false); + $saveDateReturnType = \PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType(); + \PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType(\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL); // Create string lookup table $this->stringTable = []; @@ -209,7 +207,7 @@ class Excel2007 extends BaseWriter implements IWriter $this->drawingHashTable->addFromSource($this->getWriterPart('Drawing')->allDrawings($this->spreadSheet)); // Create new ZIP file and open it for writing - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); /** @var \ZipArchive $objZip */ $objZip = new $zipClass(); @@ -225,7 +223,7 @@ class Excel2007 extends BaseWriter implements IWriter // Try opening the ZIP file if ($objZip->open($pFilename, $zipOverWrite) !== true) { if ($objZip->open($pFilename, $zipCreate) !== true) { - throw new \PhpSpreadsheet\Writer\Exception('Could not open ' . $pFilename . ' for writing.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Could not open ' . $pFilename . ' for writing.'); } } @@ -347,14 +345,14 @@ class Excel2007 extends BaseWriter implements IWriter // Add media for ($i = 0; $i < $this->getDrawingHashTable()->count(); ++$i) { - if ($this->getDrawingHashTable()->getByIndex($i) instanceof \PhpSpreadsheet\Worksheet\Drawing) { + if ($this->getDrawingHashTable()->getByIndex($i) instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing) { $imageContents = null; $imagePath = $this->getDrawingHashTable()->getByIndex($i)->getPath(); if (strpos($imagePath, 'zip://') !== false) { $imagePath = substr($imagePath, 6); $imagePathSplitted = explode('#', $imagePath); - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $imageZip = new $zipClass(); $imageZip->open($imagePathSplitted[0]); $imageContents = $imageZip->getFromName($imagePathSplitted[1]); @@ -365,7 +363,7 @@ class Excel2007 extends BaseWriter implements IWriter } $objZip->addFromString('xl/media/' . str_replace(' ', '_', $this->getDrawingHashTable()->getByIndex($i)->getIndexedFilename()), $imageContents); - } elseif ($this->getDrawingHashTable()->getByIndex($i) instanceof \PhpSpreadsheet\Worksheet\MemoryDrawing) { + } elseif ($this->getDrawingHashTable()->getByIndex($i) instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) { ob_start(); call_user_func( $this->getDrawingHashTable()->getByIndex($i)->getRenderingFunction(), @@ -378,30 +376,30 @@ class Excel2007 extends BaseWriter implements IWriter } } - \PhpSpreadsheet\Calculation\Functions::setReturnDateType($saveDateReturnType); - \PhpSpreadsheet\Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog($saveDebugLog); + \PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType($saveDateReturnType); + \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadSheet)->getDebugLog()->setWriteDebugLog($saveDebugLog); // Close file if ($objZip->close() === false) { - throw new \PhpSpreadsheet\Writer\Exception("Could not close zip file $pFilename."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Could not close zip file $pFilename."); } // If a temporary file was used, copy it to the correct file stream if ($originalFilename != $pFilename) { if (copy($pFilename, $originalFilename) === false) { - throw new \PhpSpreadsheet\Writer\Exception("Could not copy temporary zip file $pFilename to $originalFilename."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Could not copy temporary zip file $pFilename to $originalFilename."); } @unlink($pFilename); } } else { - throw new \PhpSpreadsheet\Writer\Exception('PhpSpreadsheet object unassigned.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('PhpSpreadsheet object unassigned.'); } } /** * Get Spreadsheet object * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return Spreadsheet */ public function getSpreadsheet() @@ -409,14 +407,14 @@ class Excel2007 extends BaseWriter implements IWriter if ($this->spreadSheet !== null) { return $this->spreadSheet; } else { - throw new \PhpSpreadsheet\Writer\Exception('No Spreadsheet object assigned.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('No Spreadsheet object assigned.'); } } /** * Set Spreadsheet object * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object * @throws Exception * @return Excel2007 */ @@ -438,9 +436,9 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get \PhpSpreadsheet\Style HashTable + * Get \PhpOffice\PhpSpreadsheet\Style HashTable * - * @return \PhpSpreadsheet\HashTable + * @return \PhpOffice\PhpSpreadsheet\HashTable */ public function getStyleHashTable() { @@ -448,9 +446,9 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get \PhpSpreadsheet\Style\Conditional HashTable + * Get \PhpOffice\PhpSpreadsheet\Style\Conditional HashTable * - * @return \PhpSpreadsheet\HashTable + * @return \PhpOffice\PhpSpreadsheet\HashTable */ public function getStylesConditionalHashTable() { @@ -458,9 +456,9 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get \PhpSpreadsheet\Style\Fill HashTable + * Get \PhpOffice\PhpSpreadsheet\Style\Fill HashTable * - * @return \PhpSpreadsheet\HashTable + * @return \PhpOffice\PhpSpreadsheet\HashTable */ public function getFillHashTable() { @@ -468,9 +466,9 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get \PhpSpreadsheet\Style\Font HashTable + * Get \PhpOffice\PhpSpreadsheet\Style\Font HashTable * - * @return \PhpSpreadsheet\HashTable + * @return \PhpOffice\PhpSpreadsheet\HashTable */ public function getFontHashTable() { @@ -478,9 +476,9 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get \PhpSpreadsheet\Style\Borders HashTable + * Get \PhpOffice\PhpSpreadsheet\Style\Borders HashTable * - * @return \PhpSpreadsheet\HashTable + * @return \PhpOffice\PhpSpreadsheet\HashTable */ public function getBordersHashTable() { @@ -488,9 +486,9 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get \PhpSpreadsheet\Style\NumberFormat HashTable + * Get \PhpOffice\PhpSpreadsheet\Style\NumberFormat HashTable * - * @return \PhpSpreadsheet\HashTable + * @return \PhpOffice\PhpSpreadsheet\HashTable */ public function getNumFmtHashTable() { @@ -498,9 +496,9 @@ class Excel2007 extends BaseWriter implements IWriter } /** - * Get \PhpSpreadsheet\Worksheet\BaseDrawing HashTable + * Get \PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing HashTable * - * @return \PhpSpreadsheet\HashTable + * @return \PhpOffice\PhpSpreadsheet\HashTable */ public function getDrawingHashTable() { diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Chart.php b/src/PhpSpreadsheet/Writer/Excel2007/Chart.php index 86d6babb..90915669 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Chart.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Chart.php @@ -1,15 +1,15 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; -use PhpSpreadsheet\Chart\Axis; -use PhpSpreadsheet\Chart\DataSeries; -use PhpSpreadsheet\Chart\DataSeriesValues; -use PhpSpreadsheet\Chart\GridLines; -use PhpSpreadsheet\Chart\Layout; -use PhpSpreadsheet\Chart\Legend; -use PhpSpreadsheet\Chart\PlotArea; -use PhpSpreadsheet\Chart\Title; +use PhpOffice\PhpSpreadsheet\Chart\Axis; +use PhpOffice\PhpSpreadsheet\Chart\DataSeries; +use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; +use PhpOffice\PhpSpreadsheet\Chart\GridLines; +use PhpOffice\PhpSpreadsheet\Chart\Layout; +use PhpOffice\PhpSpreadsheet\Chart\Legend; +use PhpOffice\PhpSpreadsheet\Chart\PlotArea; +use PhpOffice\PhpSpreadsheet\Chart\Title; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -40,21 +40,21 @@ class Chart extends WriterPart /** * Write charts to XML format * - * @param \PhpSpreadsheet\Chart $pChart + * @param \PhpOffice\PhpSpreadsheet\Chart $pChart * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeChart(\PhpSpreadsheet\Chart $pChart = null, $calculateCellValues = true) + public function writeChart(\PhpOffice\PhpSpreadsheet\Chart $pChart = null, $calculateCellValues = true) { $this->calculateCellValues = $calculateCellValues; // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // Ensure that data series values are up-to-date before we save if ($this->calculateCellValues) { @@ -119,12 +119,12 @@ class Chart extends WriterPart /** * Write Chart Title * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param Title $title * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeTitle(\PhpSpreadsheet\Shared\XMLWriter $objWriter, Title $title = null) + private function writeTitle(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, Title $title = null) { if (is_null($title)) { return; @@ -164,12 +164,12 @@ class Chart extends WriterPart /** * Write Chart Legend * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param Legend $legend * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeLegend(\PhpSpreadsheet\Shared\XMLWriter $objWriter, Legend $legend = null) + private function writeLegend(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, Legend $legend = null) { if (is_null($legend)) { return; @@ -215,17 +215,17 @@ class Chart extends WriterPart /** * Write Chart Plot Area * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet * @param PlotArea $plotArea * @param Title $xAxisLabel * @param Title $yAxisLabel * @param Axis $xAxis * @param Axis $yAxis * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writePlotArea(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\Worksheet $pSheet, PlotArea $plotArea, Title $xAxisLabel = null, Title $yAxisLabel = null, Axis $xAxis = null, Axis $yAxis = null, GridLines $majorGridlines = null, GridLines $minorGridlines = null) + private function writePlotArea(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet, PlotArea $plotArea, Title $xAxisLabel = null, Title $yAxisLabel = null, Axis $xAxis = null, Axis $yAxis = null, GridLines $majorGridlines = null, GridLines $minorGridlines = null) { if (is_null($plotArea)) { return; @@ -351,10 +351,10 @@ class Chart extends WriterPart /** * Write Data Labels * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Chart\Layout $chartLayout Chart layout + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Chart\Layout $chartLayout Chart layout * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function writeDataLabels($objWriter, Layout $chartLayout = null) { @@ -401,7 +401,7 @@ class Chart extends WriterPart /** * Write Category Axis * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param PlotArea $plotArea * @param Title $xAxisLabel * @param string $groupType Chart type @@ -409,7 +409,7 @@ class Chart extends WriterPart * @param string $id2 * @param bool $isMultiLevelSeries * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function writeCategoryAxis($objWriter, PlotArea $plotArea, $xAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, $xAxis, $yAxis) { @@ -454,7 +454,7 @@ class Chart extends WriterPart $caption = $caption[0]; } $objWriter->startElement('a:t'); - $objWriter->writeRawData(\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($caption)); + $objWriter->writeRawData(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($caption)); $objWriter->endElement(); $objWriter->endElement(); @@ -522,7 +522,7 @@ class Chart extends WriterPart /** * Write Value Axis * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param PlotArea $plotArea * @param Title $yAxisLabel * @param string $groupType Chart type @@ -530,7 +530,7 @@ class Chart extends WriterPart * @param string $id2 * @param bool $isMultiLevelSeries * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function writeValueAxis($objWriter, PlotArea $plotArea, $yAxisLabel, $groupType, $id1, $id2, $isMultiLevelSeries, $xAxis, $yAxis, $majorGridlines, $minorGridlines) { @@ -803,7 +803,7 @@ class Chart extends WriterPart } $objWriter->startElement('a:t'); - $objWriter->writeRawData(\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($caption)); + $objWriter->writeRawData(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($caption)); $objWriter->endElement(); $objWriter->endElement(); @@ -1010,7 +1010,7 @@ class Chart extends WriterPart * * @param PlotArea $plotArea * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string|array */ private static function getChartType($plotArea) @@ -1026,7 +1026,7 @@ class Chart extends WriterPart } $chartType = array_unique($chartTypes); if (count($chartTypes) == 0) { - throw new \PhpSpreadsheet\Writer\Exception('Chart is not yet implemented'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Chart is not yet implemented'); } } @@ -1038,15 +1038,15 @@ class Chart extends WriterPart * * @param DataSeries $plotGroup * @param string $groupType Type of plot for dataseries - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param bool &$catIsMultiLevelSeries Is category a multi-series category * @param bool &$valIsMultiLevelSeries Is value set a multi-series set * @param string &$plotGroupingType Type of grouping for multi-series values - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writePlotGroup($plotGroup, $groupType, $objWriter, &$catIsMultiLevelSeries, &$valIsMultiLevelSeries, &$plotGroupingType, \PhpSpreadsheet\Worksheet $pSheet) + private function writePlotGroup($plotGroup, $groupType, $objWriter, &$catIsMultiLevelSeries, &$valIsMultiLevelSeries, &$plotGroupingType, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet) { if (is_null($plotGroup)) { return; @@ -1216,9 +1216,9 @@ class Chart extends WriterPart * Write Plot Series Label * * @param DataSeriesValues $plotSeriesLabel - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function writePlotSeriesLabel($plotSeriesLabel, $objWriter) { @@ -1251,13 +1251,13 @@ class Chart extends WriterPart * Write Plot Series Values * * @param DataSeriesValues $plotSeriesValues - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $groupType Type of plot for dataseries * @param string $dataType Datatype of series values * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writePlotSeriesValues($plotSeriesValues, \PhpSpreadsheet\Shared\XMLWriter $objWriter, $groupType, $dataType = 'str') + private function writePlotSeriesValues($plotSeriesValues, \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, $groupType, $dataType = 'str') { if (is_null($plotSeriesValues)) { return; @@ -1345,9 +1345,9 @@ class Chart extends WriterPart * Write Bubble Chart Details * * @param DataSeriesValues $plotSeriesValues - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function writeBubbles($plotSeriesValues, $objWriter) { @@ -1391,12 +1391,12 @@ class Chart extends WriterPart /** * Write Layout * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param Layout $layout * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeLayout(\PhpSpreadsheet\Shared\XMLWriter $objWriter, Layout $layout = null) + private function writeLayout(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, Layout $layout = null) { $objWriter->startElement('c:layout'); @@ -1461,9 +1461,9 @@ class Chart extends WriterPart /** * Write Alternate Content block * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function writeAlternateContent($objWriter) { @@ -1491,9 +1491,9 @@ class Chart extends WriterPart /** * Write Printer Settings * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function writePrintSettings($objWriter) { diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Comments.php b/src/PhpSpreadsheet/Writer/Excel2007/Comments.php index 7a19964a..db14b4d5 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Comments.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Comments.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,18 +29,18 @@ class Comments extends WriterPart /** * Write comments to XML format * - * @param \PhpSpreadsheet\Worksheet $pWorksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeComments(\PhpSpreadsheet\Worksheet $pWorksheet = null) + public function writeComments(\PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -85,13 +85,13 @@ class Comments extends WriterPart /** * Write comment to XML format * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $pCellReference Cell reference - * @param \PhpSpreadsheet\Comment $pComment Comment + * @param \PhpOffice\PhpSpreadsheet\Comment $pComment Comment * @param array $pAuthors Array of authors - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeComment(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pCellReference = 'A1', \PhpSpreadsheet\Comment $pComment = null, $pAuthors = null) + private function writeComment(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pCellReference = 'A1', \PhpOffice\PhpSpreadsheet\Comment $pComment = null, $pAuthors = null) { // comment $objWriter->startElement('comment'); @@ -109,18 +109,18 @@ class Comments extends WriterPart /** * Write VML comments to XML format * - * @param \PhpSpreadsheet\Worksheet $pWorksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeVMLComments(\PhpSpreadsheet\Worksheet $pWorksheet = null) + public function writeVMLComments(\PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -181,16 +181,16 @@ class Comments extends WriterPart /** * Write VML comment to XML format * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $pCellReference Cell reference - * @param \PhpSpreadsheet\Comment $pComment Comment - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Comment $pComment Comment + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeVMLComment(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pCellReference = 'A1', \PhpSpreadsheet\Comment $pComment = null) + private function writeVMLComment(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pCellReference = 'A1', \PhpOffice\PhpSpreadsheet\Comment $pComment = null) { // Metadata - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($pCellReference); - $column = \PhpSpreadsheet\Cell::columnIndexFromString($column); + list($column, $row) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($pCellReference); + $column = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column); $id = 1024 + $column + $row; $id = substr($id, 0, 4); diff --git a/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php b/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php index 9b34cdc6..fc743857 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/ContentTypes.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,19 +29,19 @@ class ContentTypes extends WriterPart /** * Write content types to XML format * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet * @param bool $includeCharts Flag indicating if we should include drawing details for charts - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeContentTypes(\PhpSpreadsheet\Spreadsheet $spreadsheet = null, $includeCharts = false) + public function writeContentTypes(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet = null, $includeCharts = false) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -135,10 +135,10 @@ class ContentTypes extends WriterPart $extension = ''; $mimeType = ''; - if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof \PhpSpreadsheet\Worksheet\Drawing) { + if ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing) { $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getExtension()); $mimeType = $this->getImageMimeType($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getPath()); - } elseif ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof \PhpSpreadsheet\Worksheet\MemoryDrawing) { + } elseif ($this->getParentWriter()->getDrawingHashTable()->getByIndex($i) instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) { $extension = strtolower($this->getParentWriter()->getDrawingHashTable()->getByIndex($i)->getMimeType()); $extension = explode('/', $extension); $extension = $extension[1]; @@ -184,29 +184,29 @@ class ContentTypes extends WriterPart * Get image mime type * * @param string $pFile Filename - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string Mime Type */ private function getImageMimeType($pFile = '') { - if (\PhpSpreadsheet\Shared\File::fileExists($pFile)) { + if (\PhpOffice\PhpSpreadsheet\Shared\File::fileExists($pFile)) { $image = getimagesize($pFile); return image_type_to_mime_type($image[2]); } else { - throw new \PhpSpreadsheet\Writer\Exception("File $pFile does not exist"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("File $pFile does not exist"); } } /** * Write Default content type * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $pPartname Part name * @param string $pContentType Content type - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDefaultContentType(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') + private function writeDefaultContentType(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') { if ($pPartname != '' && $pContentType != '') { // Write content type @@ -215,19 +215,19 @@ class ContentTypes extends WriterPart $objWriter->writeAttribute('ContentType', $pContentType); $objWriter->endElement(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } /** * Write Override content type * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $pPartname Part name * @param string $pContentType Content type - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeOverrideContentType(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') + private function writeOverrideContentType(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pPartname = '', $pContentType = '') { if ($pPartname != '' && $pContentType != '') { // Write content type @@ -236,7 +236,7 @@ class ContentTypes extends WriterPart $objWriter->writeAttribute('ContentType', $pContentType); $objWriter->endElement(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } } diff --git a/src/PhpSpreadsheet/Writer/Excel2007/DocProps.php b/src/PhpSpreadsheet/Writer/Excel2007/DocProps.php index 0a0f46c5..b2eda30c 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/DocProps.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/DocProps.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,18 +29,18 @@ class DocProps extends WriterPart /** * Write docProps/app.xml to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeDocPropsApp(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeDocPropsApp(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -126,18 +126,18 @@ class DocProps extends WriterPart /** * Write docProps/core.xml to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeDocPropsCore(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeDocPropsCore(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -193,11 +193,11 @@ class DocProps extends WriterPart /** * Write docProps/custom.xml to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeDocPropsCustom(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeDocPropsCustom(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { $customPropertyList = $spreadsheet->getProperties()->getCustomProperties(); if (empty($customPropertyList)) { @@ -207,9 +207,9 @@ class DocProps extends WriterPart // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php b/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php index b96aebc0..a904342c 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Drawing.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; -use PhpSpreadsheet\Chart; +use PhpOffice\PhpSpreadsheet\Chart; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -31,20 +31,20 @@ class Drawing extends WriterPart /** * Write drawings to XML format * - * @param \PhpSpreadsheet\Worksheet $pWorksheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet * @param int &$chartRef Chart ID * @param bool $includeCharts Flag indicating if we should include drawing details for charts - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeDrawings(\PhpSpreadsheet\Worksheet $pWorksheet, &$chartRef, $includeCharts = false) + public function writeDrawings(\PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet, &$chartRef, $includeCharts = false) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -84,31 +84,31 @@ class Drawing extends WriterPart /** * Write drawings to XML format * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param Chart $pChart * @param int $pRelationId - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function writeChart(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, Chart $pChart = null, $pRelationId = -1) + public function writeChart(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, Chart $pChart = null, $pRelationId = -1) { $tl = $pChart->getTopLeftPosition(); - $tl['colRow'] = \PhpSpreadsheet\Cell::coordinateFromString($tl['cell']); + $tl['colRow'] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($tl['cell']); $br = $pChart->getBottomRightPosition(); - $br['colRow'] = \PhpSpreadsheet\Cell::coordinateFromString($br['cell']); + $br['colRow'] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($br['cell']); $objWriter->startElement('xdr:twoCellAnchor'); $objWriter->startElement('xdr:from'); - $objWriter->writeElement('xdr:col', \PhpSpreadsheet\Cell::columnIndexFromString($tl['colRow'][0]) - 1); - $objWriter->writeElement('xdr:colOff', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($tl['xOffset'])); + $objWriter->writeElement('xdr:col', \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($tl['colRow'][0]) - 1); + $objWriter->writeElement('xdr:colOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($tl['xOffset'])); $objWriter->writeElement('xdr:row', $tl['colRow'][1] - 1); - $objWriter->writeElement('xdr:rowOff', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($tl['yOffset'])); + $objWriter->writeElement('xdr:rowOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($tl['yOffset'])); $objWriter->endElement(); $objWriter->startElement('xdr:to'); - $objWriter->writeElement('xdr:col', \PhpSpreadsheet\Cell::columnIndexFromString($br['colRow'][0]) - 1); - $objWriter->writeElement('xdr:colOff', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($br['xOffset'])); + $objWriter->writeElement('xdr:col', \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($br['colRow'][0]) - 1); + $objWriter->writeElement('xdr:colOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($br['xOffset'])); $objWriter->writeElement('xdr:row', $br['colRow'][1] - 1); - $objWriter->writeElement('xdr:rowOff', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($br['yOffset'])); + $objWriter->writeElement('xdr:rowOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($br['yOffset'])); $objWriter->endElement(); $objWriter->startElement('xdr:graphicFrame'); @@ -156,32 +156,32 @@ class Drawing extends WriterPart /** * Write drawings to XML format * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet\BaseDrawing $pDrawing + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing $pDrawing * @param int $pRelationId - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function writeDrawing(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet\BaseDrawing $pDrawing = null, $pRelationId = -1) + public function writeDrawing(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing $pDrawing = null, $pRelationId = -1) { if ($pRelationId >= 0) { // xdr:oneCellAnchor $objWriter->startElement('xdr:oneCellAnchor'); // Image location - $aCoordinates = \PhpSpreadsheet\Cell::coordinateFromString($pDrawing->getCoordinates()); - $aCoordinates[0] = \PhpSpreadsheet\Cell::columnIndexFromString($aCoordinates[0]); + $aCoordinates = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($pDrawing->getCoordinates()); + $aCoordinates[0] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($aCoordinates[0]); // xdr:from $objWriter->startElement('xdr:from'); $objWriter->writeElement('xdr:col', $aCoordinates[0] - 1); - $objWriter->writeElement('xdr:colOff', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getOffsetX())); + $objWriter->writeElement('xdr:colOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getOffsetX())); $objWriter->writeElement('xdr:row', $aCoordinates[1] - 1); - $objWriter->writeElement('xdr:rowOff', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getOffsetY())); + $objWriter->writeElement('xdr:rowOff', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getOffsetY())); $objWriter->endElement(); // xdr:ext $objWriter->startElement('xdr:ext'); - $objWriter->writeAttribute('cx', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getWidth())); - $objWriter->writeAttribute('cy', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getHeight())); + $objWriter->writeAttribute('cx', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getWidth())); + $objWriter->writeAttribute('cy', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getHeight())); $objWriter->endElement(); // xdr:pic @@ -230,7 +230,7 @@ class Drawing extends WriterPart // a:xfrm $objWriter->startElement('a:xfrm'); - $objWriter->writeAttribute('rot', \PhpSpreadsheet\Shared\Drawing::degreesToAngle($pDrawing->getRotation())); + $objWriter->writeAttribute('rot', \PhpOffice\PhpSpreadsheet\Shared\Drawing::degreesToAngle($pDrawing->getRotation())); $objWriter->endElement(); // a:prstGeom @@ -248,9 +248,9 @@ class Drawing extends WriterPart // a:outerShdw $objWriter->startElement('a:outerShdw'); - $objWriter->writeAttribute('blurRad', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getShadow()->getBlurRadius())); - $objWriter->writeAttribute('dist', \PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getShadow()->getDistance())); - $objWriter->writeAttribute('dir', \PhpSpreadsheet\Shared\Drawing::degreesToAngle($pDrawing->getShadow()->getDirection())); + $objWriter->writeAttribute('blurRad', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getShadow()->getBlurRadius())); + $objWriter->writeAttribute('dist', \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToEMU($pDrawing->getShadow()->getDistance())); + $objWriter->writeAttribute('dir', \PhpOffice\PhpSpreadsheet\Shared\Drawing::degreesToAngle($pDrawing->getShadow()->getDirection())); $objWriter->writeAttribute('algn', $pDrawing->getShadow()->getAlignment()); $objWriter->writeAttribute('rotWithShape', '0'); @@ -326,25 +326,25 @@ class Drawing extends WriterPart $objWriter->endElement(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } /** * Write VML header/footer images to XML format * - * @param \PhpSpreadsheet\Worksheet $pWorksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeVMLHeaderFooterImages(\PhpSpreadsheet\Worksheet $pWorksheet = null) + public function writeVMLHeaderFooterImages(\PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -480,12 +480,12 @@ class Drawing extends WriterPart /** * Write VML comment to XML format * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $pReference Reference - * @param \PhpSpreadsheet\Worksheet\HeaderFooterDrawing $pImage Image - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing $pImage Image + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeVMLHeaderFooterImage(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pReference = '', \PhpSpreadsheet\Worksheet\HeaderFooterDrawing $pImage = null) + private function writeVMLHeaderFooterImage(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pReference = '', \PhpOffice\PhpSpreadsheet\Worksheet\HeaderFooterDrawing $pImage = null) { // Calculate object id preg_match('{(\d+)}', md5($pReference), $m); @@ -522,11 +522,11 @@ class Drawing extends WriterPart /** * Get an array of all drawings * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Worksheet\Drawing[] All drawings in PhpSpreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Worksheet\Drawing[] All drawings in PhpSpreadsheet */ - public function allDrawings(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function allDrawings(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Get an array of all drawings $aDrawings = []; diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Rels.php b/src/PhpSpreadsheet/Writer/Excel2007/Rels.php index d2100313..5adb8950 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Rels.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Rels.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,18 +29,18 @@ class Rels extends WriterPart /** * Write relationships to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeRelationships(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeRelationships(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -102,18 +102,18 @@ class Rels extends WriterPart /** * Write workbook relationships to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeWorkbookRelationships(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeWorkbookRelationships(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -181,20 +181,20 @@ class Rels extends WriterPart * rId1 - Drawings * rId_hyperlink_x - Hyperlinks * - * @param \PhpSpreadsheet\Worksheet $pWorksheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet * @param int $pWorksheetId * @param bool $includeCharts Flag indicating if we should write charts - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeWorksheetRelationships(\PhpSpreadsheet\Worksheet $pWorksheet = null, $pWorksheetId = 1, $includeCharts = false) + public function writeWorksheetRelationships(\PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet = null, $pWorksheetId = 1, $includeCharts = false) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -274,20 +274,20 @@ class Rels extends WriterPart /** * Write drawing relationships to XML format * - * @param \PhpSpreadsheet\Worksheet $pWorksheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet * @param int &$chartRef Chart ID * @param bool $includeCharts Flag indicating if we should write charts - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeDrawingRelationships(\PhpSpreadsheet\Worksheet $pWorksheet, &$chartRef, $includeCharts = false) + public function writeDrawingRelationships(\PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet, &$chartRef, $includeCharts = false) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -301,8 +301,8 @@ class Rels extends WriterPart $i = 1; $iterator = $pWorksheet->getDrawingCollection()->getIterator(); while ($iterator->valid()) { - if ($iterator->current() instanceof \PhpSpreadsheet\Worksheet\Drawing - || $iterator->current() instanceof \PhpSpreadsheet\Worksheet\MemoryDrawing) { + if ($iterator->current() instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing + || $iterator->current() instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) { // Write relationship for image drawing $this->writeRelationship( $objWriter, @@ -339,18 +339,18 @@ class Rels extends WriterPart /** * Write header/footer drawing relationships to XML format * - * @param \PhpSpreadsheet\Worksheet $pWorksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeHeaderFooterDrawingRelationships(\PhpSpreadsheet\Worksheet $pWorksheet = null) + public function writeHeaderFooterDrawingRelationships(\PhpOffice\PhpSpreadsheet\Worksheet $pWorksheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -379,14 +379,14 @@ class Rels extends WriterPart /** * Write Override content type * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param int $pId Relationship ID. rId will be prepended! * @param string $pType Relationship type * @param string $pTarget Relationship target * @param string $pTargetMode Relationship target mode - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeRelationship(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '') + private function writeRelationship(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pId = 1, $pType = '', $pTarget = '', $pTargetMode = '') { if ($pType != '' && $pTarget != '') { // Write relationship @@ -401,7 +401,7 @@ class Rels extends WriterPart $objWriter->endElement(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } } diff --git a/src/PhpSpreadsheet/Writer/Excel2007/RelsRibbon.php b/src/PhpSpreadsheet/Writer/Excel2007/RelsRibbon.php index 649ccdc8..3ad109bb 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/RelsRibbon.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/RelsRibbon.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,18 +29,18 @@ class RelsRibbon extends WriterPart /** * Write relationships for additional objects of custom UI (ribbon) * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeRibbonRelationships(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeRibbonRelationships(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header diff --git a/src/PhpSpreadsheet/Writer/Excel2007/RelsVBA.php b/src/PhpSpreadsheet/Writer/Excel2007/RelsVBA.php index 8c594303..32bdc0ca 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/RelsVBA.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/RelsVBA.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,18 +29,18 @@ class RelsVBA extends WriterPart /** * Write relationships for a signed VBA Project * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeVBARelationships(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeVBARelationships(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header diff --git a/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php b/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php index ee50d089..b09b7a39 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/StringTable.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,9 +29,9 @@ class StringTable extends WriterPart /** * Create worksheet stringtable * - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet * @param string[] $pExistingTable Existing table to eventually merge with - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string[] String table for worksheet */ public function createStringTable($pSheet = null, $pExistingTable = null) @@ -58,10 +58,10 @@ class StringTable extends WriterPart ($cellValue !== null) && $cellValue !== '' && !isset($aFlippedStringTable[$cellValue]) && - ($cell->getDataType() == \PhpSpreadsheet\Cell\DataType::TYPE_STRING || $cell->getDataType() == \PhpSpreadsheet\Cell\DataType::TYPE_STRING2 || $cell->getDataType() == \PhpSpreadsheet\Cell\DataType::TYPE_NULL)) { + ($cell->getDataType() == \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING || $cell->getDataType() == \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING2 || $cell->getDataType() == \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL)) { $aStringTable[] = $cellValue; $aFlippedStringTable[$cellValue] = true; - } elseif ($cellValue instanceof \PhpSpreadsheet\RichText && + } elseif ($cellValue instanceof \PhpOffice\PhpSpreadsheet\RichText && ($cellValue !== null) && !isset($aFlippedStringTable[$cellValue->getHashCode()])) { $aStringTable[] = $cellValue; @@ -71,7 +71,7 @@ class StringTable extends WriterPart return $aStringTable; } else { - throw new \PhpSpreadsheet\Writer\Exception("Invalid \PhpSpreadsheet\Worksheet object passed."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Invalid \PhpOffice\PhpSpreadsheet\Worksheet object passed."); } } @@ -79,7 +79,7 @@ class StringTable extends WriterPart * Write string table to XML format * * @param string[] $pStringTable - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ public function writeStringTable($pStringTable = null) @@ -88,9 +88,9 @@ class StringTable extends WriterPart // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -105,15 +105,15 @@ class StringTable extends WriterPart foreach ($pStringTable as $textElement) { $objWriter->startElement('si'); - if (!$textElement instanceof \PhpSpreadsheet\RichText) { - $textToWrite = \PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($textElement); + if (!$textElement instanceof \PhpOffice\PhpSpreadsheet\RichText) { + $textToWrite = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($textElement); $objWriter->startElement('t'); if ($textToWrite !== trim($textToWrite)) { $objWriter->writeAttribute('xml:space', 'preserve'); } $objWriter->writeRawData($textToWrite); $objWriter->endElement(); - } elseif ($textElement instanceof \PhpSpreadsheet\RichText) { + } elseif ($textElement instanceof \PhpOffice\PhpSpreadsheet\RichText) { $this->writeRichText($objWriter, $textElement); } @@ -124,19 +124,19 @@ class StringTable extends WriterPart return $objWriter->getData(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid string table array passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid string table array passed.'); } } /** * Write Rich Text * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\RichText $pRichText Rich text + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\RichText $pRichText Rich text * @param string $prefix Optional Namespace prefix - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function writeRichText(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\RichText $pRichText = null, $prefix = null) + public function writeRichText(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\RichText $pRichText = null, $prefix = null) { if ($prefix !== null) { $prefix .= ':'; @@ -149,7 +149,7 @@ class StringTable extends WriterPart $objWriter->startElement($prefix . 'r'); // rPr - if ($element instanceof \PhpSpreadsheet\RichText\Run) { + if ($element instanceof \PhpOffice\PhpSpreadsheet\RichText\Run) { // rPr $objWriter->startElement($prefix . 'rPr'); @@ -205,7 +205,7 @@ class StringTable extends WriterPart // t $objWriter->startElement($prefix . 't'); $objWriter->writeAttribute('xml:space', 'preserve'); - $objWriter->writeRawData(\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($element->getText())); + $objWriter->writeRawData(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($element->getText())); $objWriter->endElement(); $objWriter->endElement(); @@ -215,16 +215,16 @@ class StringTable extends WriterPart /** * Write Rich Text * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param string|\PhpSpreadsheet\RichText $pRichText text string or Rich text + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param string|\PhpOffice\PhpSpreadsheet\RichText $pRichText text string or Rich text * @param string $prefix Optional Namespace prefix - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function writeRichTextForCharts(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pRichText = null, $prefix = null) + public function writeRichTextForCharts(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pRichText = null, $prefix = null) { - if (!$pRichText instanceof \PhpSpreadsheet\RichText) { + if (!$pRichText instanceof \PhpOffice\PhpSpreadsheet\RichText) { $textRun = $pRichText; - $pRichText = new \PhpSpreadsheet\RichText(); + $pRichText = new \PhpOffice\PhpSpreadsheet\RichText(); $pRichText->createTextRun($textRun); } @@ -268,7 +268,7 @@ class StringTable extends WriterPart // t $objWriter->startElement($prefix . 't'); - $objWriter->writeRawData(\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($element->getText())); + $objWriter->writeRawData(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML($element->getText())); $objWriter->endElement(); $objWriter->endElement(); @@ -288,9 +288,9 @@ class StringTable extends WriterPart // Loop through stringtable and add flipped items to $returnValue foreach ($stringTable as $key => $value) { - if (!$value instanceof \PhpSpreadsheet\RichText) { + if (!$value instanceof \PhpOffice\PhpSpreadsheet\RichText) { $returnValue[$value] = $key; - } elseif ($value instanceof \PhpSpreadsheet\RichText) { + } elseif ($value instanceof \PhpOffice\PhpSpreadsheet\RichText) { $returnValue[$value->getHashCode()] = $key; } } diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Style.php b/src/PhpSpreadsheet/Writer/Excel2007/Style.php index 9db42e6f..0a03e43f 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Style.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Style.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,18 +29,18 @@ class Style extends WriterPart /** * Write styles to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeStyles(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeStyles(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -159,15 +159,15 @@ class Style extends WriterPart /** * Write Fill * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style\Fill $pFill Fill style - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style\Fill $pFill Fill style + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeFill(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style\Fill $pFill = null) + private function writeFill(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style\Fill $pFill = null) { // Check if this is a pattern type or gradient type - if ($pFill->getFillType() === \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR || - $pFill->getFillType() === \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH) { + if ($pFill->getFillType() === \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR || + $pFill->getFillType() === \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH) { // Gradient fill $this->writeGradientFill($objWriter, $pFill); } elseif ($pFill->getFillType() !== null) { @@ -179,11 +179,11 @@ class Style extends WriterPart /** * Write Gradient Fill * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style\Fill $pFill Fill style - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style\Fill $pFill Fill style + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeGradientFill(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style\Fill $pFill = null) + private function writeGradientFill(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style\Fill $pFill = null) { // fill $objWriter->startElement('fill'); @@ -223,11 +223,11 @@ class Style extends WriterPart /** * Write Pattern Fill * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style\Fill $pFill Fill style - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style\Fill $pFill Fill style + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writePatternFill(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style\Fill $pFill = null) + private function writePatternFill(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style\Fill $pFill = null) { // fill $objWriter->startElement('fill'); @@ -236,7 +236,7 @@ class Style extends WriterPart $objWriter->startElement('patternFill'); $objWriter->writeAttribute('patternType', $pFill->getFillType()); - if ($pFill->getFillType() !== \PhpSpreadsheet\Style\Fill::FILL_NONE) { + if ($pFill->getFillType() !== \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_NONE) { // fgColor if ($pFill->getStartColor()->getARGB()) { $objWriter->startElement('fgColor'); @@ -244,7 +244,7 @@ class Style extends WriterPart $objWriter->endElement(); } } - if ($pFill->getFillType() !== \PhpSpreadsheet\Style\Fill::FILL_NONE) { + if ($pFill->getFillType() !== \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_NONE) { // bgColor if ($pFill->getEndColor()->getARGB()) { $objWriter->startElement('bgColor'); @@ -261,11 +261,11 @@ class Style extends WriterPart /** * Write Font * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style\Font $pFont Font style - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style\Font $pFont Font style + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeFont(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style\Font $pFont = null) + private function writeFont(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style\Font $pFont = null) { // font $objWriter->startElement('font'); @@ -341,25 +341,25 @@ class Style extends WriterPart /** * Write Border * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style\Borders $pBorders Borders style - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style\Borders $pBorders Borders style + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeBorder(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style\Borders $pBorders = null) + private function writeBorder(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style\Borders $pBorders = null) { // Write border $objWriter->startElement('border'); // Diagonal? switch ($pBorders->getDiagonalDirection()) { - case \PhpSpreadsheet\Style\Borders::DIAGONAL_UP: + case \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_UP: $objWriter->writeAttribute('diagonalUp', 'true'); $objWriter->writeAttribute('diagonalDown', 'false'); break; - case \PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN: + case \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN: $objWriter->writeAttribute('diagonalUp', 'false'); $objWriter->writeAttribute('diagonalDown', 'true'); break; - case \PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH: + case \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH: $objWriter->writeAttribute('diagonalUp', 'true'); $objWriter->writeAttribute('diagonalDown', 'true'); break; @@ -377,12 +377,12 @@ class Style extends WriterPart /** * Write Cell Style Xf * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style $pStyle Style - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet Workbook - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style $pStyle Style + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet Workbook + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeCellStyleXf(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style $pStyle = null, \PhpSpreadsheet\SpreadSheet $spreadsheet = null) + private function writeCellStyleXf(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style $pStyle = null, \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // xf $objWriter->startElement('xf'); @@ -407,7 +407,7 @@ class Style extends WriterPart $objWriter->writeAttribute('applyFill', ($spreadsheet->getDefaultStyle()->getFill()->getHashCode() != $pStyle->getFill()->getHashCode()) ? '1' : '0'); $objWriter->writeAttribute('applyBorder', ($spreadsheet->getDefaultStyle()->getBorders()->getHashCode() != $pStyle->getBorders()->getHashCode()) ? '1' : '0'); $objWriter->writeAttribute('applyAlignment', ($spreadsheet->getDefaultStyle()->getAlignment()->getHashCode() != $pStyle->getAlignment()->getHashCode()) ? '1' : '0'); - if ($pStyle->getProtection()->getLocked() != \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { + if ($pStyle->getProtection()->getLocked() != \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { $objWriter->writeAttribute('applyProtection', 'true'); } @@ -436,13 +436,13 @@ class Style extends WriterPart $objWriter->endElement(); // protection - if ($pStyle->getProtection()->getLocked() != \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { + if ($pStyle->getProtection()->getLocked() != \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT || $pStyle->getProtection()->getHidden() != \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { $objWriter->startElement('protection'); - if ($pStyle->getProtection()->getLocked() != \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { - $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + if ($pStyle->getProtection()->getLocked() != \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { + $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); } - if ($pStyle->getProtection()->getHidden() != \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { - $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + if ($pStyle->getProtection()->getHidden() != \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { + $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); } $objWriter->endElement(); } @@ -453,11 +453,11 @@ class Style extends WriterPart /** * Write Cell Style Dxf * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style $pStyle Style - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style $pStyle Style + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeCellStyleDxf(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style $pStyle = null) + private function writeCellStyleDxf(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style $pStyle = null) { // dxf $objWriter->startElement('dxf'); @@ -496,16 +496,16 @@ class Style extends WriterPart // protection if (($pStyle->getProtection()->getLocked() !== null) || ($pStyle->getProtection()->getHidden() !== null)) { - if ($pStyle->getProtection()->getLocked() !== \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT || - $pStyle->getProtection()->getHidden() !== \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { + if ($pStyle->getProtection()->getLocked() !== \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT || + $pStyle->getProtection()->getHidden() !== \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT) { $objWriter->startElement('protection'); if (($pStyle->getProtection()->getLocked() !== null) && - ($pStyle->getProtection()->getLocked() !== \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT)) { - $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + ($pStyle->getProtection()->getLocked() !== \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT)) { + $objWriter->writeAttribute('locked', ($pStyle->getProtection()->getLocked() == \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); } if (($pStyle->getProtection()->getHidden() !== null) && - ($pStyle->getProtection()->getHidden() !== \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT)) { - $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); + ($pStyle->getProtection()->getHidden() !== \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT)) { + $objWriter->writeAttribute('hidden', ($pStyle->getProtection()->getHidden() == \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED ? 'true' : 'false')); } $objWriter->endElement(); } @@ -517,15 +517,15 @@ class Style extends WriterPart /** * Write BorderPr * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $pName Element name - * @param \PhpSpreadsheet\Style\Border $pBorder Border style - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Style\Border $pBorder Border style + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeBorderPr(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pName = 'left', \PhpSpreadsheet\Style\Border $pBorder = null) + private function writeBorderPr(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, $pName = 'left', \PhpOffice\PhpSpreadsheet\Style\Border $pBorder = null) { // Write BorderPr - if ($pBorder->getBorderStyle() != \PhpSpreadsheet\Style\Border::BORDER_NONE) { + if ($pBorder->getBorderStyle() != \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE) { $objWriter->startElement($pName); $objWriter->writeAttribute('style', $pBorder->getBorderStyle()); @@ -541,12 +541,12 @@ class Style extends WriterPart /** * Write NumberFormat * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Style\NumberFormat $pNumberFormat Number Format + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Style\NumberFormat $pNumberFormat Number Format * @param int $pId Number Format identifier - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeNumFmt(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Style\NumberFormat $pNumberFormat = null, $pId = 0) + private function writeNumFmt(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Style\NumberFormat $pNumberFormat = null, $pId = 0) { // Translate formatcode $formatCode = $pNumberFormat->getFormatCode(); @@ -563,11 +563,11 @@ class Style extends WriterPart /** * Get an array of all styles * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Style[] All styles in PhpSpreadsheet + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Style[] All styles in PhpSpreadsheet */ - public function allStyles(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function allStyles(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { return $spreadsheet->getCellXfCollection(); } @@ -575,11 +575,11 @@ class Style extends WriterPart /** * Get an array of all conditional styles * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Style\Conditional[] All conditional styles in PhpSpreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Style\Conditional[] All conditional styles in PhpSpreadsheet */ - public function allConditionalStyles(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function allConditionalStyles(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Get an array of all styles $aStyles = []; @@ -599,26 +599,26 @@ class Style extends WriterPart /** * Get an array of all fills * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Style\Fill[] All fills in PhpSpreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Style\Fill[] All fills in PhpSpreadsheet */ - public function allFills(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function allFills(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Get an array of unique fills $aFills = []; // Two first fills are predefined - $fill0 = new \PhpSpreadsheet\Style\Fill(); - $fill0->setFillType(\PhpSpreadsheet\Style\Fill::FILL_NONE); + $fill0 = new \PhpOffice\PhpSpreadsheet\Style\Fill(); + $fill0->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_NONE); $aFills[] = $fill0; - $fill1 = new \PhpSpreadsheet\Style\Fill(); - $fill1->setFillType(\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125); + $fill1 = new \PhpOffice\PhpSpreadsheet\Style\Fill(); + $fill1->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125); $aFills[] = $fill1; // The remaining fills $aStyles = $this->allStyles($spreadsheet); - /** @var \PhpSpreadsheet\Style $style */ + /** @var \PhpOffice\PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if (!array_key_exists($style->getFill()->getHashCode(), $aFills)) { $aFills[$style->getFill()->getHashCode()] = $style->getFill(); @@ -631,17 +631,17 @@ class Style extends WriterPart /** * Get an array of all fonts * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Style\Font[] All fonts in PhpSpreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Style\Font[] All fonts in PhpSpreadsheet */ - public function allFonts(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function allFonts(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Get an array of unique fonts $aFonts = []; $aStyles = $this->allStyles($spreadsheet); - /** @var \PhpSpreadsheet\Style $style */ + /** @var \PhpOffice\PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if (!array_key_exists($style->getFont()->getHashCode(), $aFonts)) { $aFonts[$style->getFont()->getHashCode()] = $style->getFont(); @@ -654,17 +654,17 @@ class Style extends WriterPart /** * Get an array of all borders * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Style\Borders[] All borders in PhpSpreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Style\Borders[] All borders in PhpSpreadsheet */ - public function allBorders(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function allBorders(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Get an array of unique borders $aBorders = []; $aStyles = $this->allStyles($spreadsheet); - /** @var \PhpSpreadsheet\Style $style */ + /** @var \PhpOffice\PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if (!array_key_exists($style->getBorders()->getHashCode(), $aBorders)) { $aBorders[$style->getBorders()->getHashCode()] = $style->getBorders(); @@ -677,17 +677,17 @@ class Style extends WriterPart /** * Get an array of all number formats * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Style\NumberFormat[] All number formats in PhpSpreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Style\NumberFormat[] All number formats in PhpSpreadsheet */ - public function allNumberFormats(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function allNumberFormats(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Get an array of unique number formats $aNumFmts = []; $aStyles = $this->allStyles($spreadsheet); - /** @var \PhpSpreadsheet\Style $style */ + /** @var \PhpOffice\PhpSpreadsheet\Style $style */ foreach ($aStyles as $style) { if ($style->getNumberFormat()->getBuiltInFormatCode() === false && !array_key_exists($style->getNumberFormat()->getHashCode(), $aNumFmts)) { $aNumFmts[$style->getNumberFormat()->getHashCode()] = $style->getNumberFormat(); diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Theme.php b/src/PhpSpreadsheet/Writer/Excel2007/Theme.php index b72a05b9..3f4413ea 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Theme.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Theme.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * PhpSpreadsheet @@ -127,18 +127,18 @@ class Theme extends WriterPart /** * Write theme to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeTheme(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeTheme(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -809,10 +809,10 @@ class Theme extends WriterPart /** * Write fonts to XML format * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter * @param string $latinFont * @param array of string $fontSet - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ private function writeFonts($objWriter, $latinFont, $fontSet) @@ -843,8 +843,8 @@ class Theme extends WriterPart /** * Write colour scheme to XML format * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ private function writeColourScheme($objWriter) diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Workbook.php b/src/PhpSpreadsheet/Writer/Excel2007/Workbook.php index f05238de..a073fe56 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Workbook.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Workbook.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2016 PhpSpreadsheet @@ -29,18 +29,18 @@ class Workbook extends WriterPart /** * Write workbook to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet * @param bool $recalcRequired Indicate whether formulas should be recalculated before writing - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeWorkbook(\PhpSpreadsheet\SpreadSheet $spreadsheet = null, $recalcRequired = false) + public function writeWorkbook(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null, $recalcRequired = false) { // Create XML writer if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -84,10 +84,10 @@ class Workbook extends WriterPart /** * Write file version * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeFileVersion(\PhpSpreadsheet\Shared\XMLWriter $objWriter) + private function writeFileVersion(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter) { $objWriter->startElement('fileVersion'); $objWriter->writeAttribute('appName', 'xl'); @@ -100,14 +100,14 @@ class Workbook extends WriterPart /** * Write WorkbookPr * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeWorkbookPr(\PhpSpreadsheet\Shared\XMLWriter $objWriter) + private function writeWorkbookPr(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter) { $objWriter->startElement('workbookPr'); - if (\PhpSpreadsheet\Shared\Date::getExcelCalendar() == \PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904) { + if (\PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar() == \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904) { $objWriter->writeAttribute('date1904', '1'); } @@ -119,11 +119,11 @@ class Workbook extends WriterPart /** * Write BookViews * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeBookViews(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\SpreadSheet $spreadsheet = null) + private function writeBookViews(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // bookViews $objWriter->startElement('bookViews'); @@ -149,11 +149,11 @@ class Workbook extends WriterPart /** * Write WorkbookProtection * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeWorkbookProtection(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\SpreadSheet $spreadsheet = null) + private function writeWorkbookProtection(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if ($spreadsheet->getSecurity()->isSecurityEnabled()) { $objWriter->startElement('workbookProtection'); @@ -176,11 +176,11 @@ class Workbook extends WriterPart /** * Write calcPr * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param bool $recalcRequired Indicate whether formulas should be recalculated before writing - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeCalcPr(\PhpSpreadsheet\Shared\XMLWriter $objWriter, $recalcRequired = true) + private function writeCalcPr(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, $recalcRequired = true) { $objWriter->startElement('calcPr'); @@ -199,11 +199,11 @@ class Workbook extends WriterPart /** * Write sheets * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeSheets(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\SpreadSheet $spreadsheet = null) + private function writeSheets(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Write sheets $objWriter->startElement('sheets'); @@ -225,14 +225,14 @@ class Workbook extends WriterPart /** * Write sheet * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer * @param string $pSheetname Sheet name * @param int $pSheetId Sheet id * @param int $pRelId Relationship ID * @param string $sheetState Sheet state (visible, hidden, veryHidden) - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeSheet(\PhpSpreadsheet\Shared\XMLWriter $objWriter, $pSheetname = '', $pSheetId = 1, $pRelId = 1, $sheetState = 'visible') + private function writeSheet(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, $pSheetname = '', $pSheetId = 1, $pRelId = 1, $sheetState = 'visible') { if ($pSheetname != '') { // Write sheet @@ -245,18 +245,18 @@ class Workbook extends WriterPart $objWriter->writeAttribute('r:id', 'rId' . $pRelId); $objWriter->endElement(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } /** * Write Defined Names * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDefinedNames(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\SpreadSheet $spreadsheet = null) + private function writeDefinedNames(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { // Write defined names $objWriter->startElement('definedNames'); @@ -286,11 +286,11 @@ class Workbook extends WriterPart /** * Write named ranges * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeNamedRanges(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\SpreadSheet $spreadsheet) + private function writeNamedRanges(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet) { // Loop named ranges $namedRanges = $spreadsheet->getNamedRanges(); @@ -302,11 +302,11 @@ class Workbook extends WriterPart /** * Write Defined Name for named range * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\NamedRange $pNamedRange - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\NamedRange $pNamedRange + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDefinedNameForNamedRange(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\NamedRange $pNamedRange) + private function writeDefinedNameForNamedRange(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\NamedRange $pNamedRange) { // definedName for named range $objWriter->startElement('definedName'); @@ -316,14 +316,14 @@ class Workbook extends WriterPart } // Create absolute coordinate and write as raw text - $range = \PhpSpreadsheet\Cell::splitRange($pNamedRange->getRange()); + $range = \PhpOffice\PhpSpreadsheet\Cell::splitRange($pNamedRange->getRange()); for ($i = 0; $i < count($range); ++$i) { - $range[$i][0] = '\'' . str_replace("'", "''", $pNamedRange->getWorksheet()->getTitle()) . '\'!' . \PhpSpreadsheet\Cell::absoluteReference($range[$i][0]); + $range[$i][0] = '\'' . str_replace("'", "''", $pNamedRange->getWorksheet()->getTitle()) . '\'!' . \PhpOffice\PhpSpreadsheet\Cell::absoluteReference($range[$i][0]); if (isset($range[$i][1])) { - $range[$i][1] = \PhpSpreadsheet\Cell::absoluteReference($range[$i][1]); + $range[$i][1] = \PhpOffice\PhpSpreadsheet\Cell::absoluteReference($range[$i][1]); } } - $range = \PhpSpreadsheet\Cell::buildRange($range); + $range = \PhpOffice\PhpSpreadsheet\Cell::buildRange($range); $objWriter->writeRawData($range); @@ -333,12 +333,12 @@ class Workbook extends WriterPart /** * Write Defined Name for autoFilter * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet * @param int $pSheetId - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDefinedNameForAutofilter(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\Worksheet $pSheet = null, $pSheetId = 0) + private function writeDefinedNameForAutofilter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $pSheetId = 0) { // definedName for autoFilter $autoFilterRange = $pSheet->getAutoFilter()->getRange(); @@ -349,15 +349,15 @@ class Workbook extends WriterPart $objWriter->writeAttribute('hidden', '1'); // Create absolute coordinate and write as raw text - $range = \PhpSpreadsheet\Cell::splitRange($autoFilterRange); + $range = \PhpOffice\PhpSpreadsheet\Cell::splitRange($autoFilterRange); $range = $range[0]; // Strip any worksheet ref so we can make the cell ref absolute if (strpos($range[0], '!') !== false) { list($ws, $range[0]) = explode('!', $range[0]); } - $range[0] = \PhpSpreadsheet\Cell::absoluteCoordinate($range[0]); - $range[1] = \PhpSpreadsheet\Cell::absoluteCoordinate($range[1]); + $range[0] = \PhpOffice\PhpSpreadsheet\Cell::absoluteCoordinate($range[0]); + $range[1] = \PhpOffice\PhpSpreadsheet\Cell::absoluteCoordinate($range[1]); $range = implode(':', $range); $objWriter->writeRawData('\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . $range); @@ -369,12 +369,12 @@ class Workbook extends WriterPart /** * Write Defined Name for PrintTitles * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet * @param int $pSheetId - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDefinedNameForPrintTitles(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\Worksheet $pSheet = null, $pSheetId = 0) + private function writeDefinedNameForPrintTitles(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $pSheetId = 0) { // definedName for PrintTitles if ($pSheet->getPageSetup()->isColumnsToRepeatAtLeftSet() || $pSheet->getPageSetup()->isRowsToRepeatAtTopSet()) { @@ -412,12 +412,12 @@ class Workbook extends WriterPart /** * Write Defined Name for PrintTitles * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet * @param int $pSheetId - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDefinedNameForPrintArea(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\Worksheet $pSheet = null, $pSheetId = 0) + private function writeDefinedNameForPrintArea(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $pSheetId = 0) { // definedName for PrintArea if ($pSheet->getPageSetup()->isPrintAreaSet()) { @@ -429,12 +429,12 @@ class Workbook extends WriterPart $settingString = ''; // Print area - $printArea = \PhpSpreadsheet\Cell::splitRange($pSheet->getPageSetup()->getPrintArea()); + $printArea = \PhpOffice\PhpSpreadsheet\Cell::splitRange($pSheet->getPageSetup()->getPrintArea()); $chunks = []; foreach ($printArea as $printAreaRect) { - $printAreaRect[0] = \PhpSpreadsheet\Cell::absoluteReference($printAreaRect[0]); - $printAreaRect[1] = \PhpSpreadsheet\Cell::absoluteReference($printAreaRect[1]); + $printAreaRect[0] = \PhpOffice\PhpSpreadsheet\Cell::absoluteReference($printAreaRect[0]); + $printAreaRect[1] = \PhpOffice\PhpSpreadsheet\Cell::absoluteReference($printAreaRect[1]); $chunks[] = '\'' . str_replace("'", "''", $pSheet->getTitle()) . '\'!' . implode(':', $printAreaRect); } diff --git a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php index 9e9d7643..4bb99b4e 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/Worksheet.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * PhpSpreadsheet @@ -36,10 +36,10 @@ class Worksheet extends WriterPart /** * Write worksheet to XML format * - * @param \PhpSpreadsheet\Worksheet $pSheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet * @param string[] $pStringTable * @param bool $includeCharts Flag indicating if we should write charts - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ public function writeWorksheet($pSheet = null, $pStringTable = null, $includeCharts = false) @@ -48,9 +48,9 @@ class Worksheet extends WriterPart // Create XML writer $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -130,18 +130,18 @@ class Worksheet extends WriterPart // Return return $objWriter->getData(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid \\PhpSpreadsheet\\Worksheet object passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid \\PhpOffice\\PhpSpreadsheet\\Worksheet object passed.'); } } /** * Write SheetPr * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeSheetPr(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeSheetPr(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // sheetPr $objWriter->startElement('sheetPr'); @@ -184,11 +184,11 @@ class Worksheet extends WriterPart /** * Write Dimension * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDimension(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeDimension(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // dimension $objWriter->startElement('dimension'); @@ -199,11 +199,11 @@ class Worksheet extends WriterPart /** * Write SheetViews * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeSheetViews(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeSheetViews(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // sheetViews $objWriter->startElement('sheetViews'); @@ -228,7 +228,7 @@ class Worksheet extends WriterPart } // View Layout Type - if ($pSheet->getSheetView()->getView() !== \PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_NORMAL) { + if ($pSheet->getSheetView()->getView() !== \PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_NORMAL) { $objWriter->writeAttribute('view', $pSheet->getSheetView()->getView()); } @@ -261,8 +261,8 @@ class Worksheet extends WriterPart // Calculate freeze coordinates $xSplit = $ySplit = 0; - list($xSplit, $ySplit) = \PhpSpreadsheet\Cell::coordinateFromString($topLeftCell); - $xSplit = \PhpSpreadsheet\Cell::columnIndexFromString($xSplit); + list($xSplit, $ySplit) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($topLeftCell); + $xSplit = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($xSplit); // pane $pane = 'topRight'; @@ -311,11 +311,11 @@ class Worksheet extends WriterPart /** * Write SheetFormatPr * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeSheetFormatPr(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeSheetFormatPr(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // sheetFormatPr $objWriter->startElement('sheetFormatPr'); @@ -323,7 +323,7 @@ class Worksheet extends WriterPart // Default row height if ($pSheet->getDefaultRowDimension()->getRowHeight() >= 0) { $objWriter->writeAttribute('customHeight', 'true'); - $objWriter->writeAttribute('defaultRowHeight', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getDefaultRowDimension()->getRowHeight())); + $objWriter->writeAttribute('defaultRowHeight', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getDefaultRowDimension()->getRowHeight())); } else { $objWriter->writeAttribute('defaultRowHeight', '14.4'); } @@ -336,7 +336,7 @@ class Worksheet extends WriterPart // Default column width if ($pSheet->getDefaultColumnDimension()->getWidth() >= 0) { - $objWriter->writeAttribute('defaultColWidth', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getDefaultColumnDimension()->getWidth())); + $objWriter->writeAttribute('defaultColWidth', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getDefaultColumnDimension()->getWidth())); } // Outline level - row @@ -363,11 +363,11 @@ class Worksheet extends WriterPart /** * Write Cols * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeCols(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeCols(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // cols if (count($pSheet->getColumnDimensions()) > 0) { @@ -379,15 +379,15 @@ class Worksheet extends WriterPart foreach ($pSheet->getColumnDimensions() as $colDimension) { // col $objWriter->startElement('col'); - $objWriter->writeAttribute('min', \PhpSpreadsheet\Cell::columnIndexFromString($colDimension->getColumnIndex())); - $objWriter->writeAttribute('max', \PhpSpreadsheet\Cell::columnIndexFromString($colDimension->getColumnIndex())); + $objWriter->writeAttribute('min', \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($colDimension->getColumnIndex())); + $objWriter->writeAttribute('max', \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($colDimension->getColumnIndex())); if ($colDimension->getWidth() < 0) { // No width set, apply default of 10 $objWriter->writeAttribute('width', '9.10'); } else { // Width set - $objWriter->writeAttribute('width', \PhpSpreadsheet\Shared\StringHelper::formatNumber($colDimension->getWidth())); + $objWriter->writeAttribute('width', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($colDimension->getWidth())); } // Column visibility @@ -428,11 +428,11 @@ class Worksheet extends WriterPart /** * Write SheetProtection * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeSheetProtection(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeSheetProtection(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // sheetProtection $objWriter->startElement('sheetProtection'); @@ -463,11 +463,11 @@ class Worksheet extends WriterPart /** * Write ConditionalFormatting * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeConditionalFormatting(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeConditionalFormatting(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // Conditional id $id = 1; @@ -479,7 +479,7 @@ class Worksheet extends WriterPart // if ($this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode()) == '') { // continue; // } - if ($conditional->getConditionType() != \PhpSpreadsheet\Style\Conditional::CONDITION_NONE) { + if ($conditional->getConditionType() != \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_NONE) { // conditionalFormatting $objWriter->startElement('conditionalFormatting'); $objWriter->writeAttribute('sqref', $cellCoordinate); @@ -490,35 +490,35 @@ class Worksheet extends WriterPart $objWriter->writeAttribute('dxfId', $this->getParentWriter()->getStylesConditionalHashTable()->getIndexForHashCode($conditional->getHashCode())); $objWriter->writeAttribute('priority', $id++); - if (($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS || $conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT) - && $conditional->getOperatorType() != \PhpSpreadsheet\Style\Conditional::OPERATOR_NONE) { + if (($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT) + && $conditional->getOperatorType() != \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_NONE) { $objWriter->writeAttribute('operator', $conditional->getOperatorType()); } - if ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT + if ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT && !is_null($conditional->getText())) { $objWriter->writeAttribute('text', $conditional->getText()); } - if ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == \PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT + if ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_CONTAINSTEXT && !is_null($conditional->getText())) { $objWriter->writeElement('formula', 'NOT(ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . ')))'); - } elseif ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == \PhpSpreadsheet\Style\Conditional::OPERATOR_BEGINSWITH + } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_BEGINSWITH && !is_null($conditional->getText())) { $objWriter->writeElement('formula', 'LEFT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); - } elseif ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == \PhpSpreadsheet\Style\Conditional::OPERATOR_ENDSWITH + } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_ENDSWITH && !is_null($conditional->getText())) { $objWriter->writeElement('formula', 'RIGHT(' . $cellCoordinate . ',' . strlen($conditional->getText()) . ')="' . $conditional->getText() . '"'); - } elseif ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT - && $conditional->getOperatorType() == \PhpSpreadsheet\Style\Conditional::OPERATOR_NOTCONTAINS + } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT + && $conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_NOTCONTAINS && !is_null($conditional->getText())) { $objWriter->writeElement('formula', 'ISERROR(SEARCH("' . $conditional->getText() . '",' . $cellCoordinate . '))'); - } elseif ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS - || $conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT - || $conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION) { + } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS + || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CONTAINSTEXT + || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION) { foreach ($conditional->getConditions() as $formula) { // Formula $objWriter->writeElement('formula', $formula); @@ -536,11 +536,11 @@ class Worksheet extends WriterPart /** * Write DataValidations * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDataValidations(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeDataValidations(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // Datavalidation collection $dataValidationCollection = $pSheet->getDataValidationCollection(); @@ -602,11 +602,11 @@ class Worksheet extends WriterPart /** * Write Hyperlinks * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeHyperlinks(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeHyperlinks(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // Hyperlink collection $hyperlinkCollection = $pSheet->getHyperlinkCollection(); @@ -643,11 +643,11 @@ class Worksheet extends WriterPart /** * Write ProtectedRanges * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeProtectedRanges(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeProtectedRanges(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { if (count($pSheet->getProtectedCells()) > 0) { // protectedRanges @@ -672,11 +672,11 @@ class Worksheet extends WriterPart /** * Write MergeCells * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeMergeCells(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeMergeCells(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { if (count($pSheet->getMergeCells()) > 0) { // mergeCells @@ -697,11 +697,11 @@ class Worksheet extends WriterPart /** * Write PrintOptions * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writePrintOptions(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writePrintOptions(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // printOptions $objWriter->startElement('printOptions'); @@ -723,31 +723,31 @@ class Worksheet extends WriterPart /** * Write PageMargins * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writePageMargins(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writePageMargins(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // pageMargins $objWriter->startElement('pageMargins'); - $objWriter->writeAttribute('left', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getLeft())); - $objWriter->writeAttribute('right', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getRight())); - $objWriter->writeAttribute('top', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getTop())); - $objWriter->writeAttribute('bottom', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getBottom())); - $objWriter->writeAttribute('header', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getHeader())); - $objWriter->writeAttribute('footer', \PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getFooter())); + $objWriter->writeAttribute('left', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getLeft())); + $objWriter->writeAttribute('right', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getRight())); + $objWriter->writeAttribute('top', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getTop())); + $objWriter->writeAttribute('bottom', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getBottom())); + $objWriter->writeAttribute('header', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getHeader())); + $objWriter->writeAttribute('footer', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($pSheet->getPageMargins()->getFooter())); $objWriter->endElement(); } /** * Write AutoFilter * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeAutoFilter(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeAutoFilter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { $autoFilterRange = $pSheet->getAutoFilter()->getRange(); if (!empty($autoFilterRange)) { @@ -755,7 +755,7 @@ class Worksheet extends WriterPart $objWriter->startElement('autoFilter'); // Strip any worksheet reference from the filter coordinates - $range = \PhpSpreadsheet\Cell::splitRange($autoFilterRange); + $range = \PhpOffice\PhpSpreadsheet\Cell::splitRange($autoFilterRange); $range = $range[0]; // Strip any worksheet ref if (strpos($range[0], '!') !== false) { @@ -774,17 +774,17 @@ class Worksheet extends WriterPart $objWriter->writeAttribute('colId', $pSheet->getAutoFilter()->getColumnOffset($columnID)); $objWriter->startElement($column->getFilterType()); - if ($column->getJoin() == \PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND) { + if ($column->getJoin() == \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_COLUMN_JOIN_AND) { $objWriter->writeAttribute('and', 1); } foreach ($rules as $rule) { - if (($column->getFilterType() === \PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) && - ($rule->getOperator() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL) && + if (($column->getFilterType() === \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column::AUTOFILTER_FILTERTYPE_FILTER) && + ($rule->getOperator() === \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL) && ($rule->getValue() === '')) { // Filter rule for Blanks $objWriter->writeAttribute('blank', 1); - } elseif ($rule->getRuleType() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER) { + } elseif ($rule->getRuleType() === \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DYNAMICFILTER) { // Dynamic Filter Rule $objWriter->writeAttribute('type', $rule->getGrouping()); $val = $column->getAttribute('val'); @@ -795,19 +795,19 @@ class Worksheet extends WriterPart if ($maxVal !== null) { $objWriter->writeAttribute('maxVal', $maxVal); } - } elseif ($rule->getRuleType() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_TOPTENFILTER) { + } elseif ($rule->getRuleType() === \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_TOPTENFILTER) { // Top 10 Filter Rule $objWriter->writeAttribute('val', $rule->getValue()); - $objWriter->writeAttribute('percent', (($rule->getOperator() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) ? '1' : '0')); - $objWriter->writeAttribute('top', (($rule->getGrouping() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) ? '1' : '0')); + $objWriter->writeAttribute('percent', (($rule->getOperator() === \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_PERCENT) ? '1' : '0')); + $objWriter->writeAttribute('top', (($rule->getGrouping() === \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_TOPTEN_TOP) ? '1' : '0')); } else { // Filter, DateGroupItem or CustomFilter $objWriter->startElement($rule->getRuleType()); - if ($rule->getOperator() !== \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL) { + if ($rule->getOperator() !== \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_COLUMN_RULE_EQUAL) { $objWriter->writeAttribute('operator', $rule->getOperator()); } - if ($rule->getRuleType() === \PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP) { + if ($rule->getRuleType() === \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column\Rule::AUTOFILTER_RULETYPE_DATEGROUP) { // Date Group filters foreach ($rule->getValue() as $key => $value) { if ($value > '') { @@ -836,11 +836,11 @@ class Worksheet extends WriterPart /** * Write PageSetup * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writePageSetup(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writePageSetup(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // pageSetup $objWriter->startElement('pageSetup'); @@ -871,11 +871,11 @@ class Worksheet extends WriterPart /** * Write Header / Footer * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeHeaderFooter(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeHeaderFooter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // headerFooter $objWriter->startElement('headerFooter'); @@ -896,19 +896,19 @@ class Worksheet extends WriterPart /** * Write Breaks * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeBreaks(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeBreaks(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // Get row and column breaks $aRowBreaks = []; $aColumnBreaks = []; foreach ($pSheet->getBreaks() as $cell => $breakType) { - if ($breakType == \PhpSpreadsheet\Worksheet::BREAK_ROW) { + if ($breakType == \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_ROW) { $aRowBreaks[] = $cell; - } elseif ($breakType == \PhpSpreadsheet\Worksheet::BREAK_COLUMN) { + } elseif ($breakType == \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_COLUMN) { $aColumnBreaks[] = $cell; } } @@ -920,7 +920,7 @@ class Worksheet extends WriterPart $objWriter->writeAttribute('manualBreakCount', count($aRowBreaks)); foreach ($aRowBreaks as $cell) { - $coords = \PhpSpreadsheet\Cell::coordinateFromString($cell); + $coords = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cell); $objWriter->startElement('brk'); $objWriter->writeAttribute('id', $coords[1]); @@ -938,10 +938,10 @@ class Worksheet extends WriterPart $objWriter->writeAttribute('manualBreakCount', count($aColumnBreaks)); foreach ($aColumnBreaks as $cell) { - $coords = \PhpSpreadsheet\Cell::coordinateFromString($cell); + $coords = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cell); $objWriter->startElement('brk'); - $objWriter->writeAttribute('id', \PhpSpreadsheet\Cell::columnIndexFromString($coords[0]) - 1); + $objWriter->writeAttribute('id', \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($coords[0]) - 1); $objWriter->writeAttribute('man', '1'); $objWriter->endElement(); } @@ -953,12 +953,12 @@ class Worksheet extends WriterPart /** * Write SheetData * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet * @param string[] $pStringTable String table - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeSheetData(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null, $pStringTable = null) + private function writeSheetData(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $pStringTable = null) { if (is_array($pStringTable)) { // Flipped stringtable, for faster index searching @@ -968,7 +968,7 @@ class Worksheet extends WriterPart $objWriter->startElement('sheetData'); // Get column count - $colCount = \PhpSpreadsheet\Cell::columnIndexFromString($pSheet->getHighestColumn()); + $colCount = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($pSheet->getHighestColumn()); // Highest row number $highestRow = $pSheet->getHighestRow(); @@ -976,7 +976,7 @@ class Worksheet extends WriterPart // Loop through cells $cellsByRow = []; foreach ($pSheet->getCellCollection() as $cellID) { - $cellAddress = \PhpSpreadsheet\Cell::coordinateFromString($cellID); + $cellAddress = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cellID); $cellsByRow[$cellAddress[1]][] = $cellID; } @@ -997,7 +997,7 @@ class Worksheet extends WriterPart // Row dimensions if ($rowDimension->getRowHeight() >= 0) { $objWriter->writeAttribute('customHeight', '1'); - $objWriter->writeAttribute('ht', \PhpSpreadsheet\Shared\StringHelper::formatNumber($rowDimension->getRowHeight())); + $objWriter->writeAttribute('ht', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($rowDimension->getRowHeight())); } // Row visibility @@ -1036,21 +1036,21 @@ class Worksheet extends WriterPart $objWriter->endElement(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } /** * Write Cell * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @param \PhpSpreadsheet\Cell $pCellAddress Cell Address + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @param \PhpOffice\PhpSpreadsheet\Cell $pCellAddress Cell Address * @param string[] $pStringTable String table * @param string[] $pFlippedStringTable String table (flipped), for faster index searching - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeCell(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null, $pCellAddress = null, $pStringTable = null, $pFlippedStringTable = null) + private function writeCell(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $pCellAddress = null, $pStringTable = null, $pFlippedStringTable = null) { if (is_array($pStringTable) && is_array($pFlippedStringTable)) { // Cell @@ -1090,9 +1090,9 @@ class Worksheet extends WriterPart // Write data depending on its type switch (strtolower($mappedType)) { case 'inlinestr': // Inline string - if (!$cellValue instanceof \PhpSpreadsheet\RichText) { - $objWriter->writeElement('t', \PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML(htmlspecialchars($cellValue))); - } elseif ($cellValue instanceof \PhpSpreadsheet\RichText) { + if (!$cellValue instanceof \PhpOffice\PhpSpreadsheet\RichText) { + $objWriter->writeElement('t', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::controlCharacterPHP2OOXML(htmlspecialchars($cellValue))); + } elseif ($cellValue instanceof \PhpOffice\PhpSpreadsheet\RichText) { $objWriter->startElement('is'); $this->getParentWriter()->getWriterPart('stringtable')->writeRichText($objWriter, $cellValue); $objWriter->endElement(); @@ -1100,11 +1100,11 @@ class Worksheet extends WriterPart break; case 's': // String - if (!$cellValue instanceof \PhpSpreadsheet\RichText) { + if (!$cellValue instanceof \PhpOffice\PhpSpreadsheet\RichText) { if (isset($pFlippedStringTable[$cellValue])) { $objWriter->writeElement('v', $pFlippedStringTable[$cellValue]); } - } elseif ($cellValue instanceof \PhpSpreadsheet\RichText) { + } elseif ($cellValue instanceof \PhpOffice\PhpSpreadsheet\RichText) { $objWriter->writeElement('v', $pFlippedStringTable[$cellValue->getHashCode()]); } @@ -1125,7 +1125,7 @@ class Worksheet extends WriterPart if ($this->getParentWriter()->getOffice2003Compatibility() === false) { if ($this->getParentWriter()->getPreCalculateFormulas()) { if (!is_array($calculatedValue) && substr($calculatedValue, 0, 1) != '#') { - $objWriter->writeElement('v', \PhpSpreadsheet\Shared\StringHelper::formatNumber($calculatedValue)); + $objWriter->writeElement('v', \PhpOffice\PhpSpreadsheet\Shared\StringHelper::formatNumber($calculatedValue)); } else { $objWriter->writeElement('v', '0'); } @@ -1155,19 +1155,19 @@ class Worksheet extends WriterPart $objWriter->endElement(); } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } /** * Write Drawings * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet * @param bool $includeCharts Flag indicating if we should include drawing details for charts - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeDrawings(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null, $includeCharts = false) + private function writeDrawings(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null, $includeCharts = false) { $chartCount = ($includeCharts) ? $pSheet->getChartCollection()->count() : 0; // If sheet contains drawings, add the relationships @@ -1182,11 +1182,11 @@ class Worksheet extends WriterPart /** * Write LegacyDrawing * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeLegacyDrawing(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeLegacyDrawing(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // If sheet contains comments, add the relationships if (count($pSheet->getComments()) > 0) { @@ -1199,11 +1199,11 @@ class Worksheet extends WriterPart /** * Write LegacyDrawingHF * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer - * @param \PhpSpreadsheet\Worksheet $pSheet Worksheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter XML Writer + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet Worksheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeLegacyDrawingHF(\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpSpreadsheet\Worksheet $pSheet = null) + private function writeLegacyDrawingHF(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter = null, \PhpOffice\PhpSpreadsheet\Worksheet $pSheet = null) { // If sheet contains images, add the relationships if (count($pSheet->getHeaderFooter()->getImages()) > 0) { diff --git a/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php b/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php index e6b352fc..2b8ae06b 100644 --- a/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php +++ b/src/PhpSpreadsheet/Writer/Excel2007/WriterPart.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel2007; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel2007; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -29,17 +29,17 @@ abstract class WriterPart /** * Parent IWriter object * - * @var \PhpSpreadsheet\Writer\IWriter + * @var \PhpOffice\PhpSpreadsheet\Writer\IWriter */ private $parentWriter; /** * Set parent IWriter object * - * @param \PhpSpreadsheet\Writer\IWriter $pWriter - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Writer\IWriter $pWriter + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function setParentWriter(\PhpSpreadsheet\Writer\IWriter $pWriter = null) + public function setParentWriter(\PhpOffice\PhpSpreadsheet\Writer\IWriter $pWriter = null) { $this->parentWriter = $pWriter; } @@ -47,25 +47,25 @@ abstract class WriterPart /** * Get parent IWriter object * - * @throws \PhpSpreadsheet\Writer\Exception - * @return \PhpSpreadsheet\Writer\IWriter + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception + * @return \PhpOffice\PhpSpreadsheet\Writer\IWriter */ public function getParentWriter() { if (!is_null($this->parentWriter)) { return $this->parentWriter; } else { - throw new \PhpSpreadsheet\Writer\Exception('No parent \\PhpSpreadsheet\\Writer\\IWriter assigned.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('No parent \\PhpOffice\\PhpSpreadsheet\\Writer\\IWriter assigned.'); } } /** * Set parent IWriter object * - * @param \PhpSpreadsheet\Writer\IWriter $pWriter - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Writer\IWriter $pWriter + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function __construct(\PhpSpreadsheet\Writer\IWriter $pWriter = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Writer\IWriter $pWriter = null) { if (!is_null($pWriter)) { $this->parentWriter = $pWriter; diff --git a/src/PhpSpreadsheet/Writer/Excel5.php b/src/PhpSpreadsheet/Writer/Excel5.php index c81dc2fb..2344e1fe 100644 --- a/src/PhpSpreadsheet/Writer/Excel5.php +++ b/src/PhpSpreadsheet/Writer/Excel5.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -29,7 +29,7 @@ class Excel5 extends BaseWriter implements IWriter /** * PhpSpreadsheet object * - * @var \PhpSpreadsheet\Spreadsheet + * @var \PhpOffice\PhpSpreadsheet\Spreadsheet */ private $spreadsheet; @@ -64,7 +64,7 @@ class Excel5 extends BaseWriter implements IWriter /** * Formula parser * - * @var \PhpSpreadsheet\Writer\Excel5\Parser + * @var \PhpOffice\PhpSpreadsheet\Writer\Excel5\Parser */ private $parser; @@ -92,9 +92,9 @@ class Excel5 extends BaseWriter implements IWriter /** * Create a new Excel5 Writer * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { $this->spreadsheet = $spreadsheet; @@ -105,7 +105,7 @@ class Excel5 extends BaseWriter implements IWriter * Save Spreadsheet to file * * @param string $pFilename - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { @@ -113,10 +113,10 @@ class Excel5 extends BaseWriter implements IWriter // garbage collect $this->spreadsheet->garbageCollect(); - $saveDebugLog = \PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog(); - \PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false); - $saveDateReturnType = \PhpSpreadsheet\Calculation\Functions::getReturnDateType(); - \PhpSpreadsheet\Calculation\Functions::setReturnDateType(\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL); + $saveDebugLog = \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->getWriteDebugLog(); + \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog(false); + $saveDateReturnType = \PhpOffice\PhpSpreadsheet\Calculation\Functions::getReturnDateType(); + \PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType(\PhpOffice\PhpSpreadsheet\Calculation\Functions::RETURNDATE_EXCEL); // initialize colors array $this->colors = []; @@ -151,10 +151,10 @@ class Excel5 extends BaseWriter implements IWriter foreach ($this->writerWorksheets[$i]->phpSheet->getCellCollection() as $cellID) { $cell = $this->writerWorksheets[$i]->phpSheet->getCell($cellID); $cVal = $cell->getValue(); - if ($cVal instanceof \PhpSpreadsheet\RichText) { + if ($cVal instanceof \PhpOffice\PhpSpreadsheet\RichText) { $elements = $cVal->getRichTextElements(); foreach ($elements as $element) { - if ($element instanceof \PhpSpreadsheet\RichText\Run) { + if ($element instanceof \PhpOffice\PhpSpreadsheet\RichText\Run) { $font = $element->getFont(); $this->writerWorksheets[$i]->fontHashIndex[$font->getHashCode()] = $this->writerWorkbook->addFont($font); } @@ -165,7 +165,7 @@ class Excel5 extends BaseWriter implements IWriter // initialize OLE file $workbookStreamName = 'Workbook'; - $OLE = new \PhpSpreadsheet\Shared\OLE\PPS\File(\PhpSpreadsheet\Shared\OLE::ascToUcs($workbookStreamName)); + $OLE = new \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\File(\PhpOffice\PhpSpreadsheet\Shared\OLE::ascToUcs($workbookStreamName)); // Write the worksheet streams before the global workbook stream, // because the byte sizes of these are needed in the global workbook stream @@ -186,14 +186,14 @@ class Excel5 extends BaseWriter implements IWriter $this->documentSummaryInformation = $this->writeDocumentSummaryInformation(); // initialize OLE Document Summary Information if (isset($this->documentSummaryInformation) && !empty($this->documentSummaryInformation)) { - $OLE_DocumentSummaryInformation = new \PhpSpreadsheet\Shared\OLE\PPS\File(\PhpSpreadsheet\Shared\OLE::ascToUcs(chr(5) . 'DocumentSummaryInformation')); + $OLE_DocumentSummaryInformation = new \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\File(\PhpOffice\PhpSpreadsheet\Shared\OLE::ascToUcs(chr(5) . 'DocumentSummaryInformation')); $OLE_DocumentSummaryInformation->append($this->documentSummaryInformation); } $this->summaryInformation = $this->writeSummaryInformation(); // initialize OLE Summary Information if (isset($this->summaryInformation) && !empty($this->summaryInformation)) { - $OLE_SummaryInformation = new \PhpSpreadsheet\Shared\OLE\PPS\File(\PhpSpreadsheet\Shared\OLE::ascToUcs(chr(5) . 'SummaryInformation')); + $OLE_SummaryInformation = new \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\File(\PhpOffice\PhpSpreadsheet\Shared\OLE::ascToUcs(chr(5) . 'SummaryInformation')); $OLE_SummaryInformation->append($this->summaryInformation); } @@ -208,12 +208,12 @@ class Excel5 extends BaseWriter implements IWriter $arrRootData[] = $OLE_DocumentSummaryInformation; } - $root = new \PhpSpreadsheet\Shared\OLE\PPS\Root(time(), time(), $arrRootData); + $root = new \PhpOffice\PhpSpreadsheet\Shared\OLE\PPS\Root(time(), time(), $arrRootData); // save the OLE file $res = $root->save($pFilename); - \PhpSpreadsheet\Calculation\Functions::setReturnDateType($saveDateReturnType); - \PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog); + \PhpOffice\PhpSpreadsheet\Calculation\Functions::setReturnDateType($saveDateReturnType); + \PhpOffice\PhpSpreadsheet\Calculation::getInstance($this->spreadsheet)->getDebugLog()->setWriteDebugLog($saveDebugLog); } /** @@ -221,8 +221,8 @@ class Excel5 extends BaseWriter implements IWriter * * @deprecated * @param string $pValue Temporary storage directory - * @throws \PhpSpreadsheet\Writer\Exception when directory does not exist - * @return \PhpSpreadsheet\Writer\Excel5 + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception when directory does not exist + * @return \PhpOffice\PhpSpreadsheet\Writer\Excel5 */ public function setTempDir($pValue = '') { @@ -252,10 +252,10 @@ class Excel5 extends BaseWriter implements IWriter } // create intermediate Escher object - $escher = new \PhpSpreadsheet\Shared\Escher(); + $escher = new \PhpOffice\PhpSpreadsheet\Shared\Escher(); // dgContainer - $dgContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer(); + $dgContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer(); // set the drawing index (we use sheet index + 1) $dgId = $sheet->getParent()->getIndex($sheet) + 1; @@ -263,11 +263,11 @@ class Excel5 extends BaseWriter implements IWriter $escher->setDgContainer($dgContainer); // spgrContainer - $spgrContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer(); + $spgrContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer(); $dgContainer->setSpgrContainer($spgrContainer); // add one shape which is the group shape - $spContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); + $spContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); $spContainer->setSpgr(true); $spContainer->setSpType(0); $spContainer->setSpId(($sheet->getParent()->getIndex($sheet) + 1) << 10); @@ -283,7 +283,7 @@ class Excel5 extends BaseWriter implements IWriter ++$countShapes[$sheetIndex]; // add the shape - $spContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); + $spContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); // set the shape type $spContainer->setSpType(0x004B); @@ -311,7 +311,7 @@ class Excel5 extends BaseWriter implements IWriter $width = $drawing->getWidth(); $height = $drawing->getHeight(); - $twoAnchor = \PhpSpreadsheet\Shared\Excel5::oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height); + $twoAnchor = \PhpOffice\PhpSpreadsheet\Shared\Excel5::oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height); $spContainer->setStartCoordinates($twoAnchor['startCoordinates']); $spContainer->setStartOffsetX($twoAnchor['startOffsetX']); @@ -325,7 +325,7 @@ class Excel5 extends BaseWriter implements IWriter // AutoFilters if (!empty($filterRange)) { - $rangeBounds = \PhpSpreadsheet\Cell::rangeBoundaries($filterRange); + $rangeBounds = \PhpOffice\PhpSpreadsheet\Cell::rangeBoundaries($filterRange); $iNumColStart = $rangeBounds[0][0]; $iNumColEnd = $rangeBounds[1][0]; @@ -334,14 +334,14 @@ class Excel5 extends BaseWriter implements IWriter ++$countShapes[$sheetIndex]; // create an Drawing Object for the dropdown - $oDrawing = new \PhpSpreadsheet\Worksheet\BaseDrawing(); + $oDrawing = new \PhpOffice\PhpSpreadsheet\Worksheet\BaseDrawing(); // get the coordinates of drawing - $cDrawing = \PhpSpreadsheet\Cell::stringFromColumnIndex($iInc - 1) . $rangeBounds[0][1]; + $cDrawing = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($iInc - 1) . $rangeBounds[0][1]; $oDrawing->setCoordinates($cDrawing); $oDrawing->setWorksheet($sheet); // add the shape - $spContainer = new \PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); + $spContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DgContainer\SpgrContainer\SpContainer(); // set the shape type $spContainer->setSpType(0x00C9); // set the shape flag @@ -365,7 +365,7 @@ class Excel5 extends BaseWriter implements IWriter $spContainer->setOPT(0x03BF, 0x000A0000); // Group Shape -> fPrint // set coordinates and offsets, client anchor - $endCoordinates = \PhpSpreadsheet\Cell::stringFromColumnIndex($iInc - 1); + $endCoordinates = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($iInc - 1); $endCoordinates .= $rangeBounds[0][1] + 1; $spContainer->setStartCoordinates($cDrawing); @@ -413,10 +413,10 @@ class Excel5 extends BaseWriter implements IWriter } // if we reach here, then there are drawings in the workbook - $escher = new \PhpSpreadsheet\Shared\Escher(); + $escher = new \PhpOffice\PhpSpreadsheet\Shared\Escher(); // dggContainer - $dggContainer = new \PhpSpreadsheet\Shared\Escher\DggContainer(); + $dggContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer(); $escher->setDggContainer($dggContainer); // set IDCLs (identifier clusters) @@ -448,37 +448,37 @@ class Excel5 extends BaseWriter implements IWriter $dggContainer->setCSpSaved($totalCountShapes + $countDrawings); // total number of shapes incl. one group shapes per drawing // bstoreContainer - $bstoreContainer = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer(); + $bstoreContainer = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer(); $dggContainer->setBstoreContainer($bstoreContainer); // the BSE's (all the images) foreach ($this->spreadsheet->getAllsheets() as $sheet) { foreach ($sheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof \PhpSpreadsheet\Worksheet\Drawing) { + if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing) { $filename = $drawing->getPath(); list($imagesx, $imagesy, $imageFormat) = getimagesize($filename); switch ($imageFormat) { case 1: // GIF, not supported by BIFF8, we convert to PNG - $blipType = \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; + $blipType = \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; ob_start(); imagepng(imagecreatefromgif($filename)); $blipData = ob_get_contents(); ob_end_clean(); break; case 2: // JPEG - $blipType = \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG; + $blipType = \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG; $blipData = file_get_contents($filename); break; case 3: // PNG - $blipType = \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; + $blipType = \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; $blipData = file_get_contents($filename); break; case 6: // Windows DIB (BMP), we convert to PNG - $blipType = \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; + $blipType = \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; ob_start(); - imagepng(\PhpSpreadsheet\Shared\Drawing::imagecreatefrombmp($filename)); + imagepng(\PhpOffice\PhpSpreadsheet\Shared\Drawing::imagecreatefrombmp($filename)); $blipData = ob_get_contents(); ob_end_clean(); break; @@ -486,24 +486,24 @@ class Excel5 extends BaseWriter implements IWriter continue 2; } - $blip = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); + $blip = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); $blip->setData($blipData); - $BSE = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE(); + $BSE = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE(); $BSE->setBlipType($blipType); $BSE->setBlip($blip); $bstoreContainer->addBSE($BSE); - } elseif ($drawing instanceof \PhpSpreadsheet\Worksheet\MemoryDrawing) { + } elseif ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) { switch ($drawing->getRenderingFunction()) { - case \PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG: - $blipType = \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG; + case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_JPEG: + $blipType = \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG; $renderingFunction = 'imagejpeg'; break; - case \PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_GIF: - case \PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_PNG: - case \PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_DEFAULT: - $blipType = \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; + case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_GIF: + case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_PNG: + case \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing::RENDERING_DEFAULT: + $blipType = \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG; $renderingFunction = 'imagepng'; break; } @@ -513,10 +513,10 @@ class Excel5 extends BaseWriter implements IWriter $blipData = ob_get_contents(); ob_end_clean(); - $blip = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); + $blip = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE\Blip(); $blip->setData($blipData); - $BSE = new \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE(); + $BSE = new \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE(); $BSE->setBlipType($blipType); $BSE->setBlip($blip); @@ -855,7 +855,7 @@ class Excel5 extends BaseWriter implements IWriter 'summary' => ['pack' => 'V', 'data' => 0x0C], 'offset' => ['pack' => 'V'], 'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - 'data' => ['data' => \PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], + 'data' => ['data' => \PhpOffice\PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], ]; ++$dataSection_NumProps; } @@ -866,7 +866,7 @@ class Excel5 extends BaseWriter implements IWriter 'summary' => ['pack' => 'V', 'data' => 0x0D], 'offset' => ['pack' => 'V'], 'type' => ['pack' => 'V', 'data' => 0x40], // Filetime (64-bit value representing the number of 100-nanosecond intervals since January 1, 1601) - 'data' => ['data' => \PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], + 'data' => ['data' => \PhpOffice\PhpSpreadsheet\Shared\OLE::localDateToOLE($dataProp)], ]; ++$dataSection_NumProps; } diff --git a/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php b/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php index d4556053..9cab3be6 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php +++ b/src/PhpSpreadsheet/Writer/Excel5/BIFFwriter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel5; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel5; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -112,7 +112,7 @@ class BIFFwriter $byte_order = 1; // Big Endian } else { // Give up. I'll fix this in a later version. - throw new \PhpSpreadsheet\Writer\Exception('Required floating point format not supported on this platform.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Required floating point format not supported on this platform.'); } self::$byteOrder = $byte_order; } diff --git a/src/PhpSpreadsheet/Writer/Excel5/Escher.php b/src/PhpSpreadsheet/Writer/Excel5/Escher.php index 32c4d331..27cefd21 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Escher.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Escher.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel5; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel5; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -70,7 +70,7 @@ class Escher $this->data = ''; switch (get_class($this->object)) { - case '\\PhpSpreadsheet\\Shared\\Escher': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher': if ($dggContainer = $this->object->getDggContainer()) { $writer = new self($dggContainer); $this->data = $writer->close(); @@ -81,7 +81,7 @@ class Escher $this->spTypes = $writer->getSpTypes(); } break; - case '\\PhpSpreadsheet\\Shared\\Escher\\DggContainer': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer': // this is a container record // initialize @@ -134,7 +134,7 @@ class Escher $this->data = $header . $innerData; break; - case '\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer': // this is a container record // initialize @@ -161,7 +161,7 @@ class Escher $this->data = $header . $innerData; break; - case '\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE': // this is a semi-container record // initialize @@ -210,12 +210,12 @@ class Escher $this->data .= $data; break; - case '\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE\\Blip': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DggContainer\\BstoreContainer\\BSE\\Blip': // this is an atom record // write the record switch ($this->object->getParent()->getBlipType()) { - case \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG: + case \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_JPEG: // initialize $innerData = ''; @@ -242,7 +242,7 @@ class Escher $this->data .= $innerData; break; - case \PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG: + case \PhpOffice\PhpSpreadsheet\Shared\Escher\DggContainer\BstoreContainer\BSE::BLIPTYPE_PNG: // initialize $innerData = ''; @@ -270,7 +270,7 @@ class Escher break; } break; - case '\\PhpSpreadsheet\\Shared\\Escher\\DgContainer': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer': // this is a container record // initialize @@ -322,7 +322,7 @@ class Escher $this->data = $header . $innerData; break; - case '\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer': // this is a container record // initialize @@ -361,7 +361,7 @@ class Escher $this->spOffsets = $spOffsets; $this->spTypes = $spTypes; break; - case '\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer\\SpContainer': + case '\\PhpOffice\\PhpSpreadsheet\\Shared\\Escher\\DgContainer\\SpgrContainer\\SpContainer': // initialize $data = ''; @@ -424,8 +424,8 @@ class Escher $recType = 0xF010; // start coordinates - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($this->object->getStartCoordinates()); - $c1 = \PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; + list($column, $row) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($this->object->getStartCoordinates()); + $c1 = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; $r1 = $row - 1; // start offsetX @@ -435,8 +435,8 @@ class Escher $startOffsetY = $this->object->getStartOffsetY(); // end coordinates - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($this->object->getEndCoordinates()); - $c2 = \PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; + list($column, $row) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($this->object->getEndCoordinates()); + $c2 = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; $r2 = $row - 1; // end offsetX diff --git a/src/PhpSpreadsheet/Writer/Excel5/Font.php b/src/PhpSpreadsheet/Writer/Excel5/Font.php index 1404af56..4793a471 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Font.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Font.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel5; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel5; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -36,16 +36,16 @@ class Font /** * Font * - * @var \PhpSpreadsheet\Style\Font + * @var \PhpOffice\PhpSpreadsheet\Style\Font */ private $font; /** * Constructor * - * @param \PhpSpreadsheet\Style\Font $font + * @param \PhpOffice\PhpSpreadsheet\Style\Font $font */ - public function __construct(\PhpSpreadsheet\Style\Font $font = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Style\Font $font = null) { $this->colorIndex = 0x7FFF; $this->font = $font; @@ -80,7 +80,7 @@ class Font $sss = 0; } $bFamily = 0; // Font family - $bCharSet = \PhpSpreadsheet\Shared\Font::getCharsetFromFontName($this->font->getName()); // Character set + $bCharSet = \PhpOffice\PhpSpreadsheet\Shared\Font::getCharsetFromFontName($this->font->getName()); // Character set $record = 0x31; // Record identifier $reserved = 0x00; // Reserved @@ -114,7 +114,7 @@ class Font $bCharSet, $reserved ); - $data .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($this->font->getName()); + $data .= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($this->font->getName()); $length = strlen($data); $header = pack('vv', $record, $length); @@ -142,11 +142,11 @@ class Font * @static array of int */ private static $mapUnderline = [ - \PhpSpreadsheet\Style\Font::UNDERLINE_NONE => 0x00, - \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE => 0x01, - \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE => 0x02, - \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING => 0x21, - \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING => 0x22, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE => 0x00, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE => 0x01, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE => 0x02, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING => 0x21, + \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING => 0x22, ]; /** diff --git a/src/PhpSpreadsheet/Writer/Excel5/Parser.php b/src/PhpSpreadsheet/Writer/Excel5/Parser.php index a1629c35..fd8e02fe 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Parser.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Parser.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel5; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel5; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -540,7 +540,7 @@ class Parser } // TODO: use real error codes - throw new \PhpSpreadsheet\Writer\Exception("Unknown token $token"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown token $token"); } /** @@ -573,10 +573,10 @@ class Parser // chop away beggining and ending quotes $string = substr($string, 1, strlen($string) - 2); if (strlen($string) > 255) { - throw new \PhpSpreadsheet\Writer\Exception('String is too long'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('String is too long'); } - return pack('C', $this->ptg['ptgStr']) . \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($string); + return pack('C', $this->ptg['ptgStr']) . \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($string); } /** @@ -616,7 +616,7 @@ class Parser list($cell1, $cell2) = explode(':', $range); } else { // TODO: use real error codes - throw new \PhpSpreadsheet\Writer\Exception('Unknown range separator'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unknown range separator'); } // Convert the cell references @@ -632,7 +632,7 @@ class Parser $ptgArea = pack('C', $this->ptg['ptgAreaA']); } else { // TODO: use real error codes - throw new \PhpSpreadsheet\Writer\Exception("Unknown class $class"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown class $class"); } return $ptgArea . $row1 . $row2 . $col1 . $col2; @@ -758,11 +758,11 @@ class Parser $sheet1 = $this->getSheetIndex($sheet_name1); if ($sheet1 == -1) { - throw new \PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name1 in formula"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name1 in formula"); } $sheet2 = $this->getSheetIndex($sheet_name2); if ($sheet2 == -1) { - throw new \PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name2 in formula"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name2 in formula"); } // Reverse max and min sheet numbers if necessary @@ -772,7 +772,7 @@ class Parser } else { // Single sheet name only. $sheet1 = $this->getSheetIndex($ext_ref); if ($sheet1 == -1) { - throw new \PhpSpreadsheet\Writer\Exception("Unknown sheet name $ext_ref in formula"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $ext_ref in formula"); } $sheet2 = $sheet1; } @@ -803,11 +803,11 @@ class Parser $sheet1 = $this->getSheetIndex($sheet_name1); if ($sheet1 == -1) { - throw new \PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name1 in formula"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name1 in formula"); } $sheet2 = $this->getSheetIndex($sheet_name2); if ($sheet2 == -1) { - throw new \PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name2 in formula"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $sheet_name2 in formula"); } // Reverse max and min sheet numbers if necessary @@ -817,7 +817,7 @@ class Parser } else { // Single sheet name only. $sheet1 = $this->getSheetIndex($ext_ref); if ($sheet1 == -1) { - throw new \PhpSpreadsheet\Writer\Exception("Unknown sheet name $ext_ref in formula"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Unknown sheet name $ext_ref in formula"); } $sheet2 = $sheet1; } @@ -845,7 +845,7 @@ class Parser /** * Look up the index that corresponds to an external sheet name. The hash of * sheet names is updated by the addworksheet() method of the - * \PhpSpreadsheet\Writer\Excel5\Workbook class. + * \PhpOffice\PhpSpreadsheet\Writer\Excel5\Workbook class. * * @param string $sheet_name Sheet name * @return int The sheet index, -1 if the sheet was not found @@ -862,9 +862,9 @@ class Parser /** * This method is used to update the array of sheet names. It is * called by the addWorksheet() method of the - * \PhpSpreadsheet\Writer\Excel5\Workbook class. + * \PhpOffice\PhpSpreadsheet\Writer\Excel5\Workbook class. * - * @see \PhpSpreadsheet\Writer\Excel5\Workbook::addWorksheet() + * @see \PhpOffice\PhpSpreadsheet\Writer\Excel5\Workbook::addWorksheet() * @param string $name The name of the worksheet being added * @param int $index The index of the worksheet being added */ @@ -884,10 +884,10 @@ class Parser $cell = strtoupper($cell); list($row, $col, $row_rel, $col_rel) = $this->cellToRowcol($cell); if ($col >= 256) { - throw new \PhpSpreadsheet\Writer\Exception("Column in: $cell greater than 255"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Column in: $cell greater than 255"); } if ($row >= 65536) { - throw new \PhpSpreadsheet\Writer\Exception("Row in: $cell greater than 65536 "); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Row in: $cell greater than 65536 "); } // Set the high bits to indicate if row or col are relative. @@ -924,7 +924,7 @@ class Parser // FIXME: this changes for BIFF8 if (($row1 >= 65536) or ($row2 >= 65536)) { - throw new \PhpSpreadsheet\Writer\Exception("Row in: $range greater than 65536 "); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Row in: $range greater than 65536 "); } // Set the high bits to indicate if rows are relative. @@ -1285,7 +1285,7 @@ class Parser $this->advance(); // eat the "(" $result = $this->parenthesizedExpression(); if ($this->currentToken != ')') { - throw new \PhpSpreadsheet\Writer\Exception("')' token expected."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("')' token expected."); } $this->advance(); // eat the ")" return $result; @@ -1347,7 +1347,7 @@ class Parser return $result; } - throw new \PhpSpreadsheet\Writer\Exception('Syntax error: ' . $this->currentToken . ', lookahead: ' . $this->lookAhead . ', current char: ' . $this->currentCharacter); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Syntax error: ' . $this->currentToken . ', lookahead: ' . $this->lookAhead . ', current char: ' . $this->currentCharacter); } /** @@ -1369,7 +1369,7 @@ class Parser if ($this->currentToken == ',' || $this->currentToken == ';') { $this->advance(); // eat the "," or ";" } else { - throw new \PhpSpreadsheet\Writer\Exception("Syntax error: comma expected in function $function, arg #{$num_args}"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Syntax error: comma expected in function $function, arg #{$num_args}"); } $result2 = $this->condition(); $result = $this->createTree('arg', $result, $result2); @@ -1380,12 +1380,12 @@ class Parser ++$num_args; } if (!isset($this->functions[$function])) { - throw new \PhpSpreadsheet\Writer\Exception("Function $function() doesn't exist"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Function $function() doesn't exist"); } $args = $this->functions[$function][1]; // If fixed number of args eg. TIME($i, $j, $k). Check that the number of args is valid. if (($args >= 0) and ($args != $num_args)) { - throw new \PhpSpreadsheet\Writer\Exception("Incorrect number of arguments in function $function() "); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Incorrect number of arguments in function $function() "); } $result = $this->createTree($function, $result, $num_args); diff --git a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php index e2a4dac6..1413e9a0 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Workbook.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Workbook.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel5; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel5; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -64,7 +64,7 @@ class Workbook extends BIFFwriter /** * Formula parser * - * @var \PhpSpreadsheet\Writer\Excel5\Parser + * @var \PhpOffice\PhpSpreadsheet\Writer\Excel5\Parser */ private $parser; @@ -77,7 +77,7 @@ class Workbook extends BIFFwriter /** * XF Writers - * @var \PhpSpreadsheet\Writer\Excel5\Xf[] + * @var \PhpOffice\PhpSpreadsheet\Writer\Excel5\Xf[] */ private $xfWriters = []; @@ -101,14 +101,14 @@ class Workbook extends BIFFwriter /** * Workbook - * @var \PhpSpreadsheet\Spreadsheet + * @var \PhpOffice\PhpSpreadsheet\Spreadsheet */ private $spreadsheet; /** * Fonts writers * - * @var \PhpSpreadsheet\Writer\Excel5\Font[] + * @var \PhpOffice\PhpSpreadsheet\Writer\Excel5\Font[] */ private $fontWriters = []; @@ -176,21 +176,21 @@ class Workbook extends BIFFwriter /** * Escher object corresponding to MSODRAWINGGROUP * - * @var \PhpSpreadsheet\Shared\Escher + * @var \PhpOffice\PhpSpreadsheet\Shared\Escher */ private $escher; /** * Class constructor * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet The Workbook + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet The Workbook * @param int $str_total Total number of strings * @param int $str_unique Total number of unique strings * @param array $str_table String Table * @param array $colors Colour Table * @param Parser $parser The formula parser created for the Workbook */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet, &$str_total, &$str_unique, &$str_table, &$colors, Parser $parser) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet, &$str_total, &$str_unique, &$str_table, &$colors, Parser $parser) { // It needs to call its parent's constructor explicitly parent::__construct(); @@ -231,7 +231,7 @@ class Workbook extends BIFFwriter /** * Add a new XF writer * - * @param \PhpSpreadsheet\Style + * @param \PhpOffice\PhpSpreadsheet\Style * @param bool Is it a style XF? * @return int Index to XF record */ @@ -283,10 +283,10 @@ class Workbook extends BIFFwriter /** * Add a font to added fonts * - * @param \PhpSpreadsheet\Style\Font $font + * @param \PhpOffice\PhpSpreadsheet\Style\Font $font * @return int Index to FONT record */ - public function addFont(\PhpSpreadsheet\Style\Font $font) + public function addFont(\PhpOffice\PhpSpreadsheet\Style\Font $font) { $fontHashCode = $font->getHashCode(); if (isset($this->addedFonts[$fontHashCode])) { @@ -295,7 +295,7 @@ class Workbook extends BIFFwriter $countFonts = count($this->fontWriters); $fontIndex = ($countFonts < 4) ? $countFonts : $countFonts + 1; - $fontWriter = new \PhpSpreadsheet\Writer\Excel5\Font($font); + $fontWriter = new \PhpOffice\PhpSpreadsheet\Writer\Excel5\Font($font); $fontWriter->setColorIndex($this->addColor($font->getColor()->getRGB())); $this->fontWriters[] = $fontWriter; @@ -471,7 +471,7 @@ class Workbook extends BIFFwriter // add size of Workbook globals part 2, the length of the SHEET records $total_worksheets = count($this->spreadsheet->getAllSheets()); foreach ($this->spreadsheet->getWorksheetIterator() as $sheet) { - $offset += $boundsheet_length + strlen(\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($sheet->getTitle())); + $offset += $boundsheet_length + strlen(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($sheet->getTitle())); } // add the sizes of each of the Sheet substreams, respectively @@ -550,15 +550,15 @@ class Workbook extends BIFFwriter // Write a Name record if the print area has been defined if ($sheetSetup->isPrintAreaSet()) { // Print area - $printArea = \PhpSpreadsheet\Cell::splitRange($sheetSetup->getPrintArea()); + $printArea = \PhpOffice\PhpSpreadsheet\Cell::splitRange($sheetSetup->getPrintArea()); $printArea = $printArea[0]; - $printArea[0] = \PhpSpreadsheet\Cell::coordinateFromString($printArea[0]); - $printArea[1] = \PhpSpreadsheet\Cell::coordinateFromString($printArea[1]); + $printArea[0] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($printArea[0]); + $printArea[1] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($printArea[1]); $print_rowmin = $printArea[0][1] - 1; $print_rowmax = $printArea[1][1] - 1; - $print_colmin = \PhpSpreadsheet\Cell::columnIndexFromString($printArea[0][0]) - 1; - $print_colmax = \PhpSpreadsheet\Cell::columnIndexFromString($printArea[1][0]) - 1; + $print_colmin = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($printArea[0][0]) - 1; + $print_colmax = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($printArea[1][0]) - 1; $this->writeNameShort( $i, // sheet index @@ -578,8 +578,8 @@ class Workbook extends BIFFwriter // simultaneous repeatColumns repeatRows if ($sheetSetup->isColumnsToRepeatAtLeftSet() && $sheetSetup->isRowsToRepeatAtTopSet()) { $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; + $colmin = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; $repeat = $sheetSetup->getRowsToRepeatAtTop(); $rowmin = $repeat[0] - 1; @@ -599,8 +599,8 @@ class Workbook extends BIFFwriter // Columns to repeat if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; + $colmin = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; } else { $colmin = 0; $colmax = 255; @@ -642,14 +642,14 @@ class Workbook extends BIFFwriter $namedRanges = $this->spreadsheet->getNamedRanges(); foreach ($namedRanges as $namedRange) { // Create absolute coordinate - $range = \PhpSpreadsheet\Cell::splitRange($namedRange->getRange()); + $range = \PhpOffice\PhpSpreadsheet\Cell::splitRange($namedRange->getRange()); for ($i = 0; $i < count($range); ++$i) { - $range[$i][0] = '\'' . str_replace("'", "''", $namedRange->getWorksheet()->getTitle()) . '\'!' . \PhpSpreadsheet\Cell::absoluteCoordinate($range[$i][0]); + $range[$i][0] = '\'' . str_replace("'", "''", $namedRange->getWorksheet()->getTitle()) . '\'!' . \PhpOffice\PhpSpreadsheet\Cell::absoluteCoordinate($range[$i][0]); if (isset($range[$i][1])) { - $range[$i][1] = \PhpSpreadsheet\Cell::absoluteCoordinate($range[$i][1]); + $range[$i][1] = \PhpOffice\PhpSpreadsheet\Cell::absoluteCoordinate($range[$i][1]); } } - $range = \PhpSpreadsheet\Cell::buildRange($range); // e.g. Sheet1!$A$1:$B$2 + $range = \PhpOffice\PhpSpreadsheet\Cell::buildRange($range); // e.g. Sheet1!$A$1:$B$2 // parse formula try { @@ -669,7 +669,7 @@ class Workbook extends BIFFwriter $scope = 0; } $chunk .= $this->writeData($this->writeDefinedNameBiff8($namedRange->getName(), $formulaData, $scope, false)); - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { // do nothing } } @@ -684,8 +684,8 @@ class Workbook extends BIFFwriter // simultaneous repeatColumns repeatRows if ($sheetSetup->isColumnsToRepeatAtLeftSet() && $sheetSetup->isRowsToRepeatAtTopSet()) { $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; + $colmin = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; $repeat = $sheetSetup->getRowsToRepeatAtTop(); $rowmin = $repeat[0] - 1; @@ -705,8 +705,8 @@ class Workbook extends BIFFwriter // Columns to repeat if ($sheetSetup->isColumnsToRepeatAtLeftSet()) { $repeat = $sheetSetup->getColumnsToRepeatAtLeft(); - $colmin = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; - $colmax = \PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; + $colmin = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[0]) - 1; + $colmax = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($repeat[1]) - 1; } else { $colmin = 0; $colmax = 255; @@ -734,19 +734,19 @@ class Workbook extends BIFFwriter $sheetSetup = $this->spreadsheet->getSheet($i)->getPageSetup(); if ($sheetSetup->isPrintAreaSet()) { // Print area, e.g. A3:J6,H1:X20 - $printArea = \PhpSpreadsheet\Cell::splitRange($sheetSetup->getPrintArea()); + $printArea = \PhpOffice\PhpSpreadsheet\Cell::splitRange($sheetSetup->getPrintArea()); $countPrintArea = count($printArea); $formulaData = ''; for ($j = 0; $j < $countPrintArea; ++$j) { $printAreaRect = $printArea[$j]; // e.g. A3:J6 - $printAreaRect[0] = \PhpSpreadsheet\Cell::coordinateFromString($printAreaRect[0]); - $printAreaRect[1] = \PhpSpreadsheet\Cell::coordinateFromString($printAreaRect[1]); + $printAreaRect[0] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($printAreaRect[0]); + $printAreaRect[1] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($printAreaRect[1]); $print_rowmin = $printAreaRect[0][1] - 1; $print_rowmax = $printAreaRect[1][1] - 1; - $print_colmin = \PhpSpreadsheet\Cell::columnIndexFromString($printAreaRect[0][0]) - 1; - $print_colmax = \PhpSpreadsheet\Cell::columnIndexFromString($printAreaRect[1][0]) - 1; + $print_colmin = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($printAreaRect[0][0]) - 1; + $print_colmax = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($printAreaRect[1][0]) - 1; // construct formula data manually because parser does not recognize absolute 3d cell references $formulaData .= pack('Cvvvvv', 0x3B, $i, $print_rowmin, $print_rowmax, $print_colmin, $print_colmax); @@ -766,7 +766,7 @@ class Workbook extends BIFFwriter $sheetAutoFilter = $this->spreadsheet->getSheet($i)->getAutoFilter(); $autoFilterRange = $sheetAutoFilter->getRange(); if (!empty($autoFilterRange)) { - $rangeBounds = \PhpSpreadsheet\Cell::rangeBoundaries($autoFilterRange); + $rangeBounds = \PhpOffice\PhpSpreadsheet\Cell::rangeBoundaries($autoFilterRange); //Autofilter built in name $name = pack('C', 0x0D); @@ -795,10 +795,10 @@ class Workbook extends BIFFwriter $options = $isBuiltIn ? 0x20 : 0x00; // length of the name, character count - $nlen = \PhpSpreadsheet\Shared\StringHelper::countCharacters($name); + $nlen = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($name); // name with stripped length field - $name = substr(\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($name), 2); + $name = substr(\PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($name), 2); // size of the formula (in bytes) $sz = strlen($formulaData); @@ -899,7 +899,7 @@ class Workbook extends BIFFwriter /** * Writes Excel BIFF BOUNDSHEET record. * - * @param \PhpSpreadsheet\Worksheet $sheet Worksheet name + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet Worksheet name * @param int $offset Location of worksheet BOF */ private function writeBoundSheet($sheet, $offset) @@ -909,13 +909,13 @@ class Workbook extends BIFFwriter // sheet state switch ($sheet->getSheetState()) { - case \PhpSpreadsheet\Worksheet::SHEETSTATE_VISIBLE: + case \PhpOffice\PhpSpreadsheet\Worksheet::SHEETSTATE_VISIBLE: $ss = 0x00; break; - case \PhpSpreadsheet\Worksheet::SHEETSTATE_HIDDEN: + case \PhpOffice\PhpSpreadsheet\Worksheet::SHEETSTATE_HIDDEN: $ss = 0x01; break; - case \PhpSpreadsheet\Worksheet::SHEETSTATE_VERYHIDDEN: + case \PhpOffice\PhpSpreadsheet\Worksheet::SHEETSTATE_VERYHIDDEN: $ss = 0x02; break; default: @@ -929,7 +929,7 @@ class Workbook extends BIFFwriter $grbit = 0x0000; // Visibility and sheet type $data = pack('VCC', $offset, $ss, $st); - $data .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($sheetname); + $data .= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($sheetname); $length = strlen($data); $header = pack('vv', $record, $length); @@ -997,7 +997,7 @@ class Workbook extends BIFFwriter { $record = 0x041E; // Record identifier - $numberFormatString = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($format); + $numberFormatString = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($format); $length = 2 + strlen($numberFormatString); // Number of bytes to follow $header = pack('vv', $record, $length); @@ -1013,7 +1013,7 @@ class Workbook extends BIFFwriter $record = 0x0022; // Record identifier $length = 0x0002; // Bytes to follow - $f1904 = (\PhpSpreadsheet\Shared\Date::getExcelCalendar() == \PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904) + $f1904 = (\PhpOffice\PhpSpreadsheet\Shared\Date::getExcelCalendar() == \PhpOffice\PhpSpreadsheet\Shared\Date::CALENDAR_MAC_1904) ? 1 : 0; // Flag for 1904 date system @@ -1401,7 +1401,7 @@ class Workbook extends BIFFwriter { // write the Escher stream if necessary if (isset($this->escher)) { - $writer = new \PhpSpreadsheet\Writer\Excel5\Escher($this->escher); + $writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel5\Escher($this->escher); $data = $writer->close(); $record = 0x00EB; @@ -1417,7 +1417,7 @@ class Workbook extends BIFFwriter /** * Get Escher object * - * @return \PhpSpreadsheet\Shared\Escher + * @return \PhpOffice\PhpSpreadsheet\Shared\Escher */ public function getEscher() { @@ -1427,9 +1427,9 @@ class Workbook extends BIFFwriter /** * Set Escher object * - * @param \PhpSpreadsheet\Shared\Escher $pValue + * @param \PhpOffice\PhpSpreadsheet\Shared\Escher $pValue */ - public function setEscher(\PhpSpreadsheet\Shared\Escher $pValue = null) + public function setEscher(\PhpOffice\PhpSpreadsheet\Shared\Escher $pValue = null) { $this->escher = $pValue; } diff --git a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php index 6d9488ab..b1858a04 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Worksheet.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel5; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel5; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -64,7 +64,7 @@ class Worksheet extends BIFFwriter /** * Formula parser * - * @var \PhpSpreadsheet\Writer\Excel5\Parser + * @var \PhpOffice\PhpSpreadsheet\Writer\Excel5\Parser */ private $parser; @@ -165,7 +165,7 @@ class Worksheet extends BIFFwriter /** * Sheet object - * @var \PhpSpreadsheet\Worksheet + * @var \PhpOffice\PhpSpreadsheet\Worksheet */ public $phpSheet; @@ -179,7 +179,7 @@ class Worksheet extends BIFFwriter /** * Escher object corresponding to MSODRAWING * - * @var \PhpSpreadsheet\Shared\Escher + * @var \PhpOffice\PhpSpreadsheet\Shared\Escher */ private $escher; @@ -200,7 +200,7 @@ class Worksheet extends BIFFwriter * @param mixed $parser The formula parser created for the Workbook * @param bool $preCalculateFormulas Flag indicating whether formulas should be calculated or just written * @param string $phpSheet The worksheet to write - * @param \PhpSpreadsheet\Worksheet $phpSheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $phpSheet */ public function __construct(&$str_total, &$str_unique, &$str_table, &$colors, $parser, $preCalculateFormulas, $phpSheet) { @@ -240,8 +240,8 @@ class Worksheet extends BIFFwriter // Determine lowest and highest column and row $this->lastRowIndex = ($maxR > 65535) ? 65535 : $maxR; - $this->firstColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($minC); - $this->lastColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($maxC); + $this->firstColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($minC); + $this->lastColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($maxC); // if ($this->firstColumnIndex > 255) $this->firstColumnIndex = 255; if ($this->lastColumnIndex > 255) { @@ -255,7 +255,7 @@ class Worksheet extends BIFFwriter * Add data to the beginning of the workbook (note the reverse order) * and to the end of the workbook. * - * @see \PhpSpreadsheet\Writer\Excel5\Workbook::storeWorkbook() + * @see \PhpOffice\PhpSpreadsheet\Writer\Excel5\Workbook::storeWorkbook() */ public function close() { @@ -280,7 +280,7 @@ class Worksheet extends BIFFwriter // Column dimensions if (($defaultWidth = $phpSheet->getDefaultColumnDimension()->getWidth()) < 0) { - $defaultWidth = \PhpSpreadsheet\Shared\Font::getDefaultColumnWidthByFont($phpSheet->getParent()->getDefaultStyle()->getFont()); + $defaultWidth = \PhpOffice\PhpSpreadsheet\Shared\Font::getDefaultColumnWidthByFont($phpSheet->getParent()->getDefaultStyle()->getFont()); } $columnDimensions = $phpSheet->getColumnDimensions(); @@ -292,7 +292,7 @@ class Worksheet extends BIFFwriter $width = $defaultWidth; - $columnLetter = \PhpSpreadsheet\Cell::stringFromColumnIndex($i); + $columnLetter = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($i); if (isset($columnDimensions[$columnLetter])) { $columnDimension = $columnDimensions[$columnLetter]; if ($columnDimension->getWidth() >= 0) { @@ -377,7 +377,7 @@ class Worksheet extends BIFFwriter foreach ($phpSheet->getCellCollection() as $cellID) { $cell = $phpSheet->getCell($cellID); $row = $cell->getRow() - 1; - $column = \PhpSpreadsheet\Cell::columnIndexFromString($cell->getColumn()) - 1; + $column = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($cell->getColumn()) - 1; // Don't break Excel! // if ($row + 1 > 65536 or $column + 1 > 256) { @@ -389,27 +389,27 @@ class Worksheet extends BIFFwriter $xfIndex = $cell->getXfIndex() + 15; // there are 15 cell style Xfs $cVal = $cell->getValue(); - if ($cVal instanceof \PhpSpreadsheet\RichText) { + if ($cVal instanceof \PhpOffice\PhpSpreadsheet\RichText) { $arrcRun = []; - $str_len = \PhpSpreadsheet\Shared\StringHelper::countCharacters($cVal->getPlainText(), 'UTF-8'); + $str_len = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($cVal->getPlainText(), 'UTF-8'); $str_pos = 0; $elements = $cVal->getRichTextElements(); foreach ($elements as $element) { // FONT Index - if ($element instanceof \PhpSpreadsheet\RichText\Run) { + if ($element instanceof \PhpOffice\PhpSpreadsheet\RichText\Run) { $str_fontidx = $this->fontHashIndex[$element->getFont()->getHashCode()]; } else { $str_fontidx = 0; } $arrcRun[] = ['strlen' => $str_pos, 'fontidx' => $str_fontidx]; // Position FROM - $str_pos += \PhpSpreadsheet\Shared\StringHelper::countCharacters($element->getText(), 'UTF-8'); + $str_pos += \PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($element->getText(), 'UTF-8'); } $this->writeRichTextString($row, $column, $cVal->getPlainText(), $xfIndex, $arrcRun); } else { switch ($cell->getDatatype()) { - case \PhpSpreadsheet\Cell\DataType::TYPE_STRING: - case \PhpSpreadsheet\Cell\DataType::TYPE_NULL: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NULL: if ($cVal === '' || $cVal === null) { $this->writeBlank($row, $column, $xfIndex); } else { @@ -417,21 +417,21 @@ class Worksheet extends BIFFwriter } break; - case \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC: $this->writeNumber($row, $column, $cVal, $xfIndex); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA: $calculatedValue = $this->_preCalculateFormulas ? $cell->getCalculatedValue() : null; $this->writeFormula($row, $column, $cVal, $xfIndex, $calculatedValue); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_BOOL: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_BOOL: $this->writeBoolErr($row, $column, $cVal, 0, $xfIndex); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_ERROR: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_ERROR: $this->writeBoolErr($row, $column, self::mapErrorCode($cVal), 1, $xfIndex); break; } @@ -461,7 +461,7 @@ class Worksheet extends BIFFwriter // Hyperlinks foreach ($phpSheet->getHyperLinkCollection() as $coordinate => $hyperlink) { - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($coordinate); + list($column, $row) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($coordinate); $url = $hyperlink->getUrl(); @@ -475,7 +475,7 @@ class Worksheet extends BIFFwriter $url = 'external:' . $url; } - $this->writeUrl($row - 1, \PhpSpreadsheet\Cell::columnIndexFromString($column) - 1, $url); + $this->writeUrl($row - 1, \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column) - 1, $url); } $this->writeDataValidity(); @@ -494,8 +494,8 @@ class Worksheet extends BIFFwriter // Write ConditionalFormattingTable records foreach ($arrConditionalStyles as $cellCoordinate => $conditionalStyles) { foreach ($conditionalStyles as $conditional) { - if ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION - || $conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) { + if ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION + || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) { if (!in_array($conditional->getHashCode(), $arrConditional)) { $arrConditional[] = $conditional->getHashCode(); // Write CFRULE record @@ -531,10 +531,10 @@ class Worksheet extends BIFFwriter $lastCell = $explodes[1]; } - $firstCellCoordinates = \PhpSpreadsheet\Cell::coordinateFromString($firstCell); // e.g. array(0, 1) - $lastCellCoordinates = \PhpSpreadsheet\Cell::coordinateFromString($lastCell); // e.g. array(1, 6) + $firstCellCoordinates = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($firstCell); // e.g. array(0, 1) + $lastCellCoordinates = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($lastCell); // e.g. array(1, 6) - return pack('vvvv', $firstCellCoordinates[1] - 1, $lastCellCoordinates[1] - 1, \PhpSpreadsheet\Cell::columnIndexFromString($firstCellCoordinates[0]) - 1, \PhpSpreadsheet\Cell::columnIndexFromString($lastCellCoordinates[0]) - 1); + return pack('vvvv', $firstCellCoordinates[1] - 1, $lastCellCoordinates[1] - 1, \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($firstCellCoordinates[0]) - 1, \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($lastCellCoordinates[0]) - 1); } /** @@ -647,7 +647,7 @@ class Worksheet extends BIFFwriter { $record = 0x00FD; // Record identifier $length = 0x000A; // Bytes to follow - $str = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($str, $arrcRun); + $str = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeShort($str, $arrcRun); /* check if string is already present */ if (!isset($this->stringTable[$str])) { @@ -715,7 +715,7 @@ class Worksheet extends BIFFwriter $record = 0x00FD; // Record identifier $length = 0x000A; // Bytes to follow - $str = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($str); + $str = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($str); /* check if string is already present */ if (!isset($this->stringTable[$str])) { @@ -842,7 +842,7 @@ class Worksheet extends BIFFwriter // Numeric value $num = pack('d', $calculatedValue); } elseif (is_string($calculatedValue)) { - if (array_key_exists($calculatedValue, \PhpSpreadsheet\Cell\DataType::getErrorCodes())) { + if (array_key_exists($calculatedValue, \PhpOffice\PhpSpreadsheet\Cell\DataType::getErrorCodes())) { // Error value $num = pack('CCCvCv', 0x02, 0x00, self::mapErrorCode($calculatedValue), 0x00, 0x00, 0xFFFF); } elseif ($calculatedValue === '') { @@ -895,7 +895,7 @@ class Worksheet extends BIFFwriter } return 0; - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { // do nothing } } @@ -908,7 +908,7 @@ class Worksheet extends BIFFwriter private function writeStringRecord($stringValue) { $record = 0x0207; // Record identifier - $data = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($stringValue); + $data = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($stringValue); $length = strlen($data); $header = pack('vv', $record, $length); @@ -1043,10 +1043,10 @@ class Worksheet extends BIFFwriter $url .= "\0"; // character count - $url_len = \PhpSpreadsheet\Shared\StringHelper::countCharacters($url); + $url_len = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::countCharacters($url); $url_len = pack('V', $url_len); - $url = \PhpSpreadsheet\Shared\StringHelper::convertEncoding($url, 'UTF-16LE', 'UTF-8'); + $url = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::convertEncoding($url, 'UTF-16LE', 'UTF-8'); // Calculate the data length $length = 0x24 + strlen($url); @@ -1256,7 +1256,7 @@ class Worksheet extends BIFFwriter // no support in PhpSpreadsheet for selected sheet, therefore sheet is only selected if it is the active sheet $fSelected = ($this->phpSheet === $this->phpSheet->getParent()->getActiveSheet()) ? 1 : 0; $fPaged = 1; // 2 - $fPageBreakPreview = $this->phpSheet->getSheetView()->getView() === \PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW; + $fPageBreakPreview = $this->phpSheet->getSheetView()->getView() === \PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_BREAK_PREVIEW; $grbit = $fDspFmla; $grbit |= $fDspGrid << 1; @@ -1386,7 +1386,7 @@ class Worksheet extends BIFFwriter { // look up the selected cell range $selectedCells = $this->phpSheet->getSelectedCells(); - $selectedCells = \PhpSpreadsheet\Cell::splitRange($this->phpSheet->getSelectedCells()); + $selectedCells = \PhpOffice\PhpSpreadsheet\Cell::splitRange($this->phpSheet->getSelectedCells()); $selectedCells = $selectedCells[0]; if (count($selectedCells) == 2) { list($first, $last) = $selectedCells; @@ -1395,12 +1395,12 @@ class Worksheet extends BIFFwriter $last = $selectedCells[0]; } - list($colFirst, $rwFirst) = \PhpSpreadsheet\Cell::coordinateFromString($first); - $colFirst = \PhpSpreadsheet\Cell::columnIndexFromString($colFirst) - 1; // base 0 column index + list($colFirst, $rwFirst) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($first); + $colFirst = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($colFirst) - 1; // base 0 column index --$rwFirst; // base 0 row index - list($colLast, $rwLast) = \PhpSpreadsheet\Cell::coordinateFromString($last); - $colLast = \PhpSpreadsheet\Cell::columnIndexFromString($colLast) - 1; // base 0 column index + list($colLast, $rwLast) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($last); + $colLast = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($colLast) - 1; // base 0 column index --$rwLast; // base 0 row index // make sure we are not out of bounds @@ -1473,12 +1473,12 @@ class Worksheet extends BIFFwriter ++$j; // extract the row and column indexes - $range = \PhpSpreadsheet\Cell::splitRange($mergeCell); + $range = \PhpOffice\PhpSpreadsheet\Cell::splitRange($mergeCell); list($first, $last) = $range[0]; - list($firstColumn, $firstRow) = \PhpSpreadsheet\Cell::coordinateFromString($first); - list($lastColumn, $lastRow) = \PhpSpreadsheet\Cell::coordinateFromString($last); + list($firstColumn, $firstRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($first); + list($lastColumn, $lastRow) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($last); - $recordData .= pack('vvvv', $firstRow - 1, $lastRow - 1, \PhpSpreadsheet\Cell::columnIndexFromString($firstColumn) - 1, \PhpSpreadsheet\Cell::columnIndexFromString($lastColumn) - 1); + $recordData .= pack('vvvv', $firstRow - 1, $lastRow - 1, \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($firstColumn) - 1, \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($lastColumn) - 1); // flush record if we have reached limit for number of merged cells, or reached final merged cell if ($j == $maxCountMergeCellsPerRecord or $i == $countMergeCells) { @@ -1603,7 +1603,7 @@ class Worksheet extends BIFFwriter hexdec($password) ); - $recordData .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong('p' . md5($recordData)); + $recordData .= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong('p' . md5($recordData)); $length = strlen($recordData); @@ -1676,9 +1676,9 @@ class Worksheet extends BIFFwriter { $panes = []; if ($freezePane = $this->phpSheet->getFreezePane()) { - list($column, $row) = \PhpSpreadsheet\Cell::coordinateFromString($freezePane); + list($column, $row) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($freezePane); $panes[0] = $row - 1; - $panes[1] = \PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; + $panes[1] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($column) - 1; } else { // thaw panes return; @@ -1776,7 +1776,7 @@ class Worksheet extends BIFFwriter $fLeftToRight = 0x0; // Print over then down // Page orientation - $fLandscape = ($this->phpSheet->getPageSetup()->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? + $fLandscape = ($this->phpSheet->getPageSetup()->getOrientation() == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 0x0 : 0x1; $fNoPls = 0x0; // Setup not read from printer @@ -1825,7 +1825,7 @@ class Worksheet extends BIFFwriter } */ - $recordData = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddHeader()); + $recordData = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddHeader()); $length = strlen($recordData); $header = pack('vv', $record, $length); @@ -1849,7 +1849,7 @@ class Worksheet extends BIFFwriter } */ - $recordData = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddFooter()); + $recordData = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($this->phpSheet->getHeaderFooter()->getOddFooter()); $length = strlen($recordData); $header = pack('vv', $record, $length); @@ -2019,7 +2019,7 @@ class Worksheet extends BIFFwriter $record = 0x009D; // Record identifier $length = 0x0002; // Bytes to follow - $rangeBounds = \PhpSpreadsheet\Cell::rangeBoundaries($this->phpSheet->getAutoFilter()->getRange()); + $rangeBounds = \PhpOffice\PhpSpreadsheet\Cell::rangeBoundaries($this->phpSheet->getAutoFilter()->getRange()); $iNumFilters = 1 + $rangeBounds[1][0] - $rangeBounds[0][0]; $header = pack('vv', $record, $length); @@ -2121,19 +2121,19 @@ class Worksheet extends BIFFwriter foreach ($this->phpSheet->getBreaks() as $cell => $breakType) { // Fetch coordinates - $coordinates = \PhpSpreadsheet\Cell::coordinateFromString($cell); + $coordinates = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cell); // Decide what to do by the type of break switch ($breakType) { - case \PhpSpreadsheet\Worksheet::BREAK_COLUMN: + case \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_COLUMN: // Add to list of vertical breaks - $vbreaks[] = \PhpSpreadsheet\Cell::columnIndexFromString($coordinates[0]) - 1; + $vbreaks[] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($coordinates[0]) - 1; break; - case \PhpSpreadsheet\Worksheet::BREAK_ROW: + case \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_ROW: // Add to list of horizontal breaks $hbreaks[] = $coordinates[1]; break; - case \PhpSpreadsheet\Worksheet::BREAK_NONE: + case \PhpOffice\PhpSpreadsheet\Worksheet::BREAK_NONE: default: // Nothing to do break; @@ -2372,10 +2372,10 @@ class Worksheet extends BIFFwriter $row_end = $row_start; // Row containing bottom right corner of object // Zero the specified offset if greater than the cell dimensions - if ($x1 >= \PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start))) { + if ($x1 >= \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_start))) { $x1 = 0; } - if ($y1 >= \PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_start + 1)) { + if ($y1 >= \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_start + 1)) { $y1 = 0; } @@ -2383,38 +2383,38 @@ class Worksheet extends BIFFwriter $height = $height + $y1 - 1; // Subtract the underlying cell widths to find the end cell of the image - while ($width >= \PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end))) { - $width -= \PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)); + while ($width >= \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end))) { + $width -= \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)); ++$col_end; } // Subtract the underlying cell heights to find the end cell of the image - while ($height >= \PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1)) { - $height -= \PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1); + while ($height >= \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1)) { + $height -= \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1); ++$row_end; } // Bitmap isn't allowed to start or finish in a hidden cell, i.e. a cell // with zero eight or width. // - if (\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) == 0) { + if (\PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) == 0) { return; } - if (\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) == 0) { + if (\PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) == 0) { return; } - if (\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_start + 1) == 0) { + if (\PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_start + 1) == 0) { return; } - if (\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1) == 0) { + if (\PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1) == 0) { return; } // Convert the pixel values to the percentage value expected by Excel - $x1 = $x1 / \PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) * 1024; - $y1 = $y1 / \PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_start + 1) * 256; - $x2 = $width / \PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object - $y2 = $height / \PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1) * 256; // Distance to bottom of object + $x1 = $x1 / \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_start)) * 1024; + $y1 = $y1 / \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_start + 1) * 256; + $x2 = $width / \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeCol($this->phpSheet, \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($col_end)) * 1024; // Distance to right side of object + $y2 = $height / \PhpOffice\PhpSpreadsheet\Shared\Excel5::sizeRow($this->phpSheet, $row_end + 1) * 256; // Distance to bottom of object $this->writeObjPicture($col_start, $x1, $row_start, $y1, $col_end, $x2, $row_end, $y2); } @@ -2538,7 +2538,7 @@ class Worksheet extends BIFFwriter // Open file. $bmp_fd = @fopen($bitmap, 'rb'); if (!$bmp_fd) { - throw new \PhpSpreadsheet\Writer\Exception("Couldn't import $bitmap"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Couldn't import $bitmap"); } // Slurp the file into a string. @@ -2546,13 +2546,13 @@ class Worksheet extends BIFFwriter // Check that the file is big enough to be a bitmap. if (strlen($data) <= 0x36) { - throw new \PhpSpreadsheet\Writer\Exception("$bitmap doesn't contain enough data.\n"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("$bitmap doesn't contain enough data.\n"); } // The first 2 bytes are used to identify the bitmap. $identity = unpack('A2ident', $data); if ($identity['ident'] != 'BM') { - throw new \PhpSpreadsheet\Writer\Exception("$bitmap doesn't appear to be a valid bitmap image.\n"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("$bitmap doesn't appear to be a valid bitmap image.\n"); } // Remove bitmap data: ID. @@ -2576,20 +2576,20 @@ class Worksheet extends BIFFwriter $height = $width_and_height[2]; $data = substr($data, 8); if ($width > 0xFFFF) { - throw new \PhpSpreadsheet\Writer\Exception("$bitmap: largest image width supported is 65k.\n"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("$bitmap: largest image width supported is 65k.\n"); } if ($height > 0xFFFF) { - throw new \PhpSpreadsheet\Writer\Exception("$bitmap: largest image height supported is 65k.\n"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("$bitmap: largest image height supported is 65k.\n"); } // Read and remove the bitmap planes and bpp data. Verify them. $planes_and_bitcount = unpack('v2', substr($data, 0, 4)); $data = substr($data, 4); if ($planes_and_bitcount[2] != 24) { // Bitcount - throw new \PhpSpreadsheet\Writer\Exception("$bitmap isn't a 24bit true color bitmap.\n"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("$bitmap isn't a 24bit true color bitmap.\n"); } if ($planes_and_bitcount[1] != 1) { - throw new \PhpSpreadsheet\Writer\Exception("$bitmap: only 1 plane supported in bitmap image.\n"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("$bitmap: only 1 plane supported in bitmap image.\n"); } // Read and remove the bitmap compression. Verify compression. @@ -2597,7 +2597,7 @@ class Worksheet extends BIFFwriter $data = substr($data, 4); if ($compression['comp'] != 0) { - throw new \PhpSpreadsheet\Writer\Exception("$bitmap: compression not supported in bitmap image.\n"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("$bitmap: compression not supported in bitmap image.\n"); } // Remove bitmap data: data size, hres, vres, colours, imp. colours. @@ -2632,7 +2632,7 @@ class Worksheet extends BIFFwriter /** * Get Escher object * - * @return \PhpSpreadsheet\Shared\Escher + * @return \PhpOffice\PhpSpreadsheet\Shared\Escher */ public function getEscher() { @@ -2642,9 +2642,9 @@ class Worksheet extends BIFFwriter /** * Set Escher object * - * @param \PhpSpreadsheet\Shared\Escher $pValue + * @param \PhpOffice\PhpSpreadsheet\Shared\Escher $pValue */ - public function setEscher(\PhpSpreadsheet\Shared\Escher $pValue = null) + public function setEscher(\PhpOffice\PhpSpreadsheet\Shared\Escher $pValue = null) { $this->escher = $pValue; } @@ -2656,7 +2656,7 @@ class Worksheet extends BIFFwriter { // write the Escher stream if necessary if (isset($this->escher)) { - $writer = new \PhpSpreadsheet\Writer\Excel5\Escher($this->escher); + $writer = new \PhpOffice\PhpSpreadsheet\Writer\Excel5\Escher($this->escher); $data = $writer->close(); $spOffsets = $writer->getSpOffsets(); $spTypes = $writer->getSpTypes(); @@ -2770,28 +2770,28 @@ class Worksheet extends BIFFwriter // data type $type = $dataValidation->getType(); switch ($type) { - case \PhpSpreadsheet\Cell\DataValidation::TYPE_NONE: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_NONE: $type = 0x00; break; - case \PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_WHOLE: $type = 0x01; break; - case \PhpSpreadsheet\Cell\DataValidation::TYPE_DECIMAL: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_DECIMAL: $type = 0x02; break; - case \PhpSpreadsheet\Cell\DataValidation::TYPE_LIST: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_LIST: $type = 0x03; break; - case \PhpSpreadsheet\Cell\DataValidation::TYPE_DATE: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_DATE: $type = 0x04; break; - case \PhpSpreadsheet\Cell\DataValidation::TYPE_TIME: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_TIME: $type = 0x05; break; - case \PhpSpreadsheet\Cell\DataValidation::TYPE_TEXTLENGTH: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_TEXTLENGTH: $type = 0x06; break; - case \PhpSpreadsheet\Cell\DataValidation::TYPE_CUSTOM: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::TYPE_CUSTOM: $type = 0x07; break; } @@ -2800,13 +2800,13 @@ class Worksheet extends BIFFwriter // error style $errorStyle = $dataValidation->getType(); switch ($errorStyle) { - case \PhpSpreadsheet\Cell\DataValidation::STYLE_STOP: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_STOP: $errorStyle = 0x00; break; - case \PhpSpreadsheet\Cell\DataValidation::STYLE_WARNING: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_WARNING: $errorStyle = 0x01; break; - case \PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::STYLE_INFORMATION: $errorStyle = 0x02; break; } @@ -2832,28 +2832,28 @@ class Worksheet extends BIFFwriter // condition operator $operator = $dataValidation->getOperator(); switch ($operator) { - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_BETWEEN: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_BETWEEN: $operator = 0x00; break; - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTBETWEEN: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTBETWEEN: $operator = 0x01; break; - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_EQUAL: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_EQUAL: $operator = 0x02; break; - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTEQUAL: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_NOTEQUAL: $operator = 0x03; break; - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHAN: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHAN: $operator = 0x04; break; - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHAN: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHAN: $operator = 0x05; break; - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHANOREQUAL: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_GREATERTHANOREQUAL: $operator = 0x06; break; - case \PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHANOREQUAL: + case \PhpOffice\PhpSpreadsheet\Cell\DataValidation::OPERATOR_LESSTHANOREQUAL: $operator = 0x07; break; } @@ -2864,22 +2864,22 @@ class Worksheet extends BIFFwriter // prompt title $promptTitle = $dataValidation->getPromptTitle() !== '' ? $dataValidation->getPromptTitle() : chr(0); - $data .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($promptTitle); + $data .= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($promptTitle); // error title $errorTitle = $dataValidation->getErrorTitle() !== '' ? $dataValidation->getErrorTitle() : chr(0); - $data .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($errorTitle); + $data .= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($errorTitle); // prompt text $prompt = $dataValidation->getPrompt() !== '' ? $dataValidation->getPrompt() : chr(0); - $data .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($prompt); + $data .= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($prompt); // error text $error = $dataValidation->getError() !== '' ? $dataValidation->getError() : chr(0); - $data .= \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($error); + $data .= \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($error); // formula 1 try { @@ -2890,7 +2890,7 @@ class Worksheet extends BIFFwriter $this->parser->parse($formula1); $formula1 = $this->parser->toReversePolish(); $sz1 = strlen($formula1); - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { $sz1 = 0; $formula1 = ''; } @@ -2901,12 +2901,12 @@ class Worksheet extends BIFFwriter try { $formula2 = $dataValidation->getFormula2(); if ($formula2 === '') { - throw new \PhpSpreadsheet\Writer\Exception('No formula2'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('No formula2'); } $this->parser->parse($formula2); $formula2 = $this->parser->toReversePolish(); $sz2 = strlen($formula2); - } catch (\PhpSpreadsheet\Exception $e) { + } catch (\PhpOffice\PhpSpreadsheet\Exception $e) { $sz2 = 0; $formula2 = ''; } @@ -2967,7 +2967,7 @@ class Worksheet extends BIFFwriter $wScalvePLV = $this->phpSheet->getSheetView()->getZoomScale(); // 2 // The options flags that comprise $grbit - if ($this->phpSheet->getSheetView()->getView() == \PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT) { + if ($this->phpSheet->getSheetView()->getView() == \PhpOffice\PhpSpreadsheet\Worksheet\SheetView::SHEETVIEW_PAGE_LAYOUT) { $fPageLayoutView = 1; } else { $fPageLayoutView = 0; @@ -2986,43 +2986,43 @@ class Worksheet extends BIFFwriter /** * Write CFRule Record - * @param \PhpSpreadsheet\Style\Conditional $conditional + * @param \PhpOffice\PhpSpreadsheet\Style\Conditional $conditional */ - private function writeCFRule(\PhpSpreadsheet\Style\Conditional $conditional) + private function writeCFRule(\PhpOffice\PhpSpreadsheet\Style\Conditional $conditional) { $record = 0x01B1; // Record identifier // $type : Type of the CF // $operatorType : Comparison operator - if ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION) { + if ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION) { $type = 0x02; $operatorType = 0x00; - } elseif ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) { + } elseif ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) { $type = 0x01; switch ($conditional->getOperatorType()) { - case \PhpSpreadsheet\Style\Conditional::OPERATOR_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_NONE: $operatorType = 0x00; break; - case \PhpSpreadsheet\Style\Conditional::OPERATOR_EQUAL: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_EQUAL: $operatorType = 0x03; break; - case \PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHAN: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHAN: $operatorType = 0x05; break; - case \PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_GREATERTHANOREQUAL: $operatorType = 0x07; break; - case \PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHAN: $operatorType = 0x06; break; - case \PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHANOREQUAL: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_LESSTHANOREQUAL: $operatorType = 0x08; break; - case \PhpSpreadsheet\Style\Conditional::OPERATOR_NOTEQUAL: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_NOTEQUAL: $operatorType = 0x04; break; - case \PhpSpreadsheet\Style\Conditional::OPERATOR_BETWEEN: + case \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_BETWEEN: $operatorType = 0x01; break; // not OPERATOR_NOTBETWEEN 0x02 @@ -3038,7 +3038,7 @@ class Worksheet extends BIFFwriter $szValue2 = 0x0000; $operand1 = pack('Cv', 0x1E, $arrConditions[0]); $operand2 = null; - } elseif ($numConditions == 2 && ($conditional->getOperatorType() == \PhpSpreadsheet\Style\Conditional::OPERATOR_BETWEEN)) { + } elseif ($numConditions == 2 && ($conditional->getOperatorType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::OPERATOR_BETWEEN)) { $szValue1 = ($arrConditions[0] <= 65535 ? 3 : 0x0000); $szValue2 = ($arrConditions[1] <= 65535 ? 3 : 0x0000); $operand1 = pack('Cv', 0x1E, $arrConditions[0]); @@ -3072,14 +3072,14 @@ class Worksheet extends BIFFwriter $bFormatProt = 0; } // Border - $bBorderLeft = ($conditional->getStyle()->getBorders()->getLeft()->getColor()->getARGB() == \PhpSpreadsheet\Style\Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getLeft()->getBorderStyle() == \PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); - $bBorderRight = ($conditional->getStyle()->getBorders()->getRight()->getColor()->getARGB() == \PhpSpreadsheet\Style\Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getRight()->getBorderStyle() == \PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); - $bBorderTop = ($conditional->getStyle()->getBorders()->getTop()->getColor()->getARGB() == \PhpSpreadsheet\Style\Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getTop()->getBorderStyle() == \PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); - $bBorderBottom = ($conditional->getStyle()->getBorders()->getBottom()->getColor()->getARGB() == \PhpSpreadsheet\Style\Color::COLOR_BLACK - && $conditional->getStyle()->getBorders()->getBottom()->getBorderStyle() == \PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); + $bBorderLeft = ($conditional->getStyle()->getBorders()->getLeft()->getColor()->getARGB() == \PhpOffice\PhpSpreadsheet\Style\Color::COLOR_BLACK + && $conditional->getStyle()->getBorders()->getLeft()->getBorderStyle() == \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); + $bBorderRight = ($conditional->getStyle()->getBorders()->getRight()->getColor()->getARGB() == \PhpOffice\PhpSpreadsheet\Style\Color::COLOR_BLACK + && $conditional->getStyle()->getBorders()->getRight()->getBorderStyle() == \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); + $bBorderTop = ($conditional->getStyle()->getBorders()->getTop()->getColor()->getARGB() == \PhpOffice\PhpSpreadsheet\Style\Color::COLOR_BLACK + && $conditional->getStyle()->getBorders()->getTop()->getBorderStyle() == \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); + $bBorderBottom = ($conditional->getStyle()->getBorders()->getBottom()->getColor()->getARGB() == \PhpOffice\PhpSpreadsheet\Style\Color::COLOR_BLACK + && $conditional->getStyle()->getBorders()->getBottom()->getBorderStyle() == \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE ? 1 : 0); if ($bBorderLeft == 0 || $bBorderRight == 0 || $bBorderTop == 0 || $bBorderBottom == 0) { $bFormatBorder = 1; } else { @@ -3155,7 +3155,7 @@ class Worksheet extends BIFFwriter $dataBlockFont = pack('VVVVVVVV', 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000); $dataBlockFont .= pack('VVVVVVVV', 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000); } else { - $dataBlockFont = \PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($conditional->getStyle()->getFont()->getName()); + $dataBlockFont = \PhpOffice\PhpSpreadsheet\Shared\StringHelper::UTF8toBIFF8UnicodeLong($conditional->getStyle()->getFont()->getName()); } // Font Size if ($conditional->getStyle()->getFont()->getSize() == null) { @@ -3184,23 +3184,23 @@ class Worksheet extends BIFFwriter } // Underline type switch ($conditional->getStyle()->getFont()->getUnderline()) { - case \PhpSpreadsheet\Style\Font::UNDERLINE_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE: $dataBlockFont .= pack('C', 0x00); $fontUnderline = 0; break; - case \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE: + case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLE: $dataBlockFont .= pack('C', 0x02); $fontUnderline = 0; break; - case \PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING: + case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_DOUBLEACCOUNTING: $dataBlockFont .= pack('C', 0x22); $fontUnderline = 0; break; - case \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE: + case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLE: $dataBlockFont .= pack('C', 0x01); $fontUnderline = 0; break; - case \PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING: + case \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_SINGLEACCOUNTING: $dataBlockFont .= pack('C', 0x21); $fontUnderline = 0; break; @@ -3414,22 +3414,22 @@ class Worksheet extends BIFFwriter $blockAlign = 0; // Alignment and text break switch ($conditional->getStyle()->getAlignment()->getHorizontal()) { - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL: $blockAlign = 0; break; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT: $blockAlign = 1; break; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT: $blockAlign = 3; break; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER: $blockAlign = 2; break; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS: $blockAlign = 6; break; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY: $blockAlign = 5; break; } @@ -3439,16 +3439,16 @@ class Worksheet extends BIFFwriter $blockAlign |= 0 << 3; } switch ($conditional->getStyle()->getAlignment()->getVertical()) { - case \PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM: $blockAlign = 2 << 4; break; - case \PhpSpreadsheet\Style\Alignment::VERTICAL_TOP: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP: $blockAlign = 0 << 4; break; - case \PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER: $blockAlign = 1 << 4; break; - case \PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY: $blockAlign = 3 << 4; break; } @@ -3474,178 +3474,178 @@ class Worksheet extends BIFFwriter if ($bFormatBorder == 1) { $blockLineStyle = 0; switch ($conditional->getStyle()->getBorders()->getLeft()->getBorderStyle()) { - case \PhpSpreadsheet\Style\Border::BORDER_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE: $blockLineStyle |= 0x00; break; - case \PhpSpreadsheet\Style\Border::BORDER_THIN: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN: $blockLineStyle |= 0x01; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUM: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM: $blockLineStyle |= 0x02; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED: $blockLineStyle |= 0x03; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOTTED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED: $blockLineStyle |= 0x04; break; - case \PhpSpreadsheet\Style\Border::BORDER_THICK: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK: $blockLineStyle |= 0x05; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOUBLE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE: $blockLineStyle |= 0x06; break; - case \PhpSpreadsheet\Style\Border::BORDER_HAIR: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_HAIR: $blockLineStyle |= 0x07; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: $blockLineStyle |= 0x08; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT: $blockLineStyle |= 0x09; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: $blockLineStyle |= 0x0A; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: $blockLineStyle |= 0x0B; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: $blockLineStyle |= 0x0C; break; - case \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: $blockLineStyle |= 0x0D; break; } switch ($conditional->getStyle()->getBorders()->getRight()->getBorderStyle()) { - case \PhpSpreadsheet\Style\Border::BORDER_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE: $blockLineStyle |= 0x00 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_THIN: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN: $blockLineStyle |= 0x01 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUM: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM: $blockLineStyle |= 0x02 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED: $blockLineStyle |= 0x03 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOTTED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED: $blockLineStyle |= 0x04 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_THICK: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK: $blockLineStyle |= 0x05 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOUBLE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE: $blockLineStyle |= 0x06 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_HAIR: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_HAIR: $blockLineStyle |= 0x07 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: $blockLineStyle |= 0x08 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT: $blockLineStyle |= 0x09 << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: $blockLineStyle |= 0x0A << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: $blockLineStyle |= 0x0B << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: $blockLineStyle |= 0x0C << 4; break; - case \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: $blockLineStyle |= 0x0D << 4; break; } switch ($conditional->getStyle()->getBorders()->getTop()->getBorderStyle()) { - case \PhpSpreadsheet\Style\Border::BORDER_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE: $blockLineStyle |= 0x00 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_THIN: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN: $blockLineStyle |= 0x01 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUM: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM: $blockLineStyle |= 0x02 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED: $blockLineStyle |= 0x03 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOTTED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED: $blockLineStyle |= 0x04 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_THICK: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK: $blockLineStyle |= 0x05 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOUBLE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE: $blockLineStyle |= 0x06 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_HAIR: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_HAIR: $blockLineStyle |= 0x07 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: $blockLineStyle |= 0x08 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT: $blockLineStyle |= 0x09 << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: $blockLineStyle |= 0x0A << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: $blockLineStyle |= 0x0B << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: $blockLineStyle |= 0x0C << 8; break; - case \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: $blockLineStyle |= 0x0D << 8; break; } switch ($conditional->getStyle()->getBorders()->getBottom()->getBorderStyle()) { - case \PhpSpreadsheet\Style\Border::BORDER_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE: $blockLineStyle |= 0x00 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_THIN: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN: $blockLineStyle |= 0x01 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUM: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM: $blockLineStyle |= 0x02 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED: $blockLineStyle |= 0x03 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOTTED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED: $blockLineStyle |= 0x04 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_THICK: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK: $blockLineStyle |= 0x05 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOUBLE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE: $blockLineStyle |= 0x06 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_HAIR: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_HAIR: $blockLineStyle |= 0x07 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: $blockLineStyle |= 0x08 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT: $blockLineStyle |= 0x09 << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: $blockLineStyle |= 0x0A << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: $blockLineStyle |= 0x0B << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: $blockLineStyle |= 0x0C << 12; break; - case \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: $blockLineStyle |= 0x0D << 12; break; } @@ -3658,46 +3658,46 @@ class Worksheet extends BIFFwriter //@todo writeCFRule() => $blockColor => Index Color for bottom line //@todo writeCFRule() => $blockColor => Index Color for diagonal line switch ($conditional->getStyle()->getBorders()->getDiagonal()->getBorderStyle()) { - case \PhpSpreadsheet\Style\Border::BORDER_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE: $blockColor |= 0x00 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_THIN: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN: $blockColor |= 0x01 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUM: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM: $blockColor |= 0x02 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED: $blockColor |= 0x03 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOTTED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED: $blockColor |= 0x04 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_THICK: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK: $blockColor |= 0x05 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_DOUBLE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE: $blockColor |= 0x06 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_HAIR: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_HAIR: $blockColor |= 0x07 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: $blockColor |= 0x08 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT: $blockColor |= 0x09 << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: $blockColor |= 0x0A << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: $blockColor |= 0x0B << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: $blockColor |= 0x0C << 21; break; - case \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: $blockColor |= 0x0D << 21; break; } @@ -3707,67 +3707,67 @@ class Worksheet extends BIFFwriter // Fill Patern Style $blockFillPatternStyle = 0; switch ($conditional->getStyle()->getFill()->getFillType()) { - case \PhpSpreadsheet\Style\Fill::FILL_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_NONE: $blockFillPatternStyle = 0x00; break; - case \PhpSpreadsheet\Style\Fill::FILL_SOLID: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID: $blockFillPatternStyle = 0x01; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_MEDIUMGRAY: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_MEDIUMGRAY: $blockFillPatternStyle = 0x02; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRAY: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRAY: $blockFillPatternStyle = 0x03; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRAY: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRAY: $blockFillPatternStyle = 0x04; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKHORIZONTAL: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKHORIZONTAL: $blockFillPatternStyle = 0x05; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKVERTICAL: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKVERTICAL: $blockFillPatternStyle = 0x06; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKDOWN: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKDOWN: $blockFillPatternStyle = 0x07; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKUP: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKUP: $blockFillPatternStyle = 0x08; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRID: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRID: $blockFillPatternStyle = 0x09; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKTRELLIS: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKTRELLIS: $blockFillPatternStyle = 0x0A; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTHORIZONTAL: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTHORIZONTAL: $blockFillPatternStyle = 0x0B; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTVERTICAL: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTVERTICAL: $blockFillPatternStyle = 0x0C; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTDOWN: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTDOWN: $blockFillPatternStyle = 0x0D; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTUP: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTUP: $blockFillPatternStyle = 0x0E; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRID: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRID: $blockFillPatternStyle = 0x0F; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTTRELLIS: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTTRELLIS: $blockFillPatternStyle = 0x10; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125: $blockFillPatternStyle = 0x11; break; - case \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY0625: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY0625: $blockFillPatternStyle = 0x12; break; - case \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR: $blockFillPatternStyle = 0x00; break; // does not exist in BIFF8 - case \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH: + case \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH: $blockFillPatternStyle = 0x00; break; // does not exist in BIFF8 default: @@ -4127,10 +4127,10 @@ class Worksheet extends BIFFwriter } if ($bFormatProt == 1) { $dataBlockProtection = 0; - if ($conditional->getStyle()->getProtection()->getLocked() == \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED) { + if ($conditional->getStyle()->getProtection()->getLocked() == \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED) { $dataBlockProtection = 1; } - if ($conditional->getStyle()->getProtection()->getHidden() == \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED) { + if ($conditional->getStyle()->getProtection()->getHidden() == \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED) { $dataBlockProtection = 1 << 1; } } @@ -4176,15 +4176,15 @@ class Worksheet extends BIFFwriter $arrConditional = []; foreach ($this->phpSheet->getConditionalStylesCollection() as $cellCoordinate => $conditionalStyles) { foreach ($conditionalStyles as $conditional) { - if ($conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION - || $conditional->getConditionType() == \PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) { + if ($conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_EXPRESSION + || $conditional->getConditionType() == \PhpOffice\PhpSpreadsheet\Style\Conditional::CONDITION_CELLIS) { if (!in_array($conditional->getHashCode(), $arrConditional)) { $arrConditional[] = $conditional->getHashCode(); } // Cells - $arrCoord = \PhpSpreadsheet\Cell::coordinateFromString($cellCoordinate); + $arrCoord = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($cellCoordinate); if (!is_numeric($arrCoord[0])) { - $arrCoord[0] = \PhpSpreadsheet\Cell::columnIndexFromString($arrCoord[0]); + $arrCoord[0] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($arrCoord[0]); } if (is_null($numColumnMin) || ($numColumnMin > $arrCoord[0])) { $numColumnMin = $arrCoord[0]; diff --git a/src/PhpSpreadsheet/Writer/Excel5/Xf.php b/src/PhpSpreadsheet/Writer/Excel5/Xf.php index 1cf9f37b..54b5b6ad 100644 --- a/src/PhpSpreadsheet/Writer/Excel5/Xf.php +++ b/src/PhpSpreadsheet/Writer/Excel5/Xf.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\Excel5; +namespace PhpOffice\PhpSpreadsheet\Writer\Excel5; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -125,9 +125,9 @@ class Xf /** * Constructor * - * @param \PhpSpreadsheet\Style The XF format + * @param \PhpOffice\PhpSpreadsheet\Style The XF format */ - public function __construct(\PhpSpreadsheet\Style $style = null) + public function __construct(\PhpOffice\PhpSpreadsheet\Style $style = null) { $this->isStyleXf = false; $this->fontIndex = 0; @@ -224,10 +224,10 @@ class Xf $border1 |= $this->rightBorderColor << 23; $diagonalDirection = $this->_style->getBorders()->getDiagonalDirection(); - $diag_tl_to_rb = $diagonalDirection == \PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH - || $diagonalDirection == \PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN; - $diag_tr_to_lb = $diagonalDirection == \PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH - || $diagonalDirection == \PhpSpreadsheet\Style\Borders::DIAGONAL_UP; + $diag_tl_to_rb = $diagonalDirection == \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH + || $diagonalDirection == \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_DOWN; + $diag_tr_to_lb = $diagonalDirection == \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_BOTH + || $diagonalDirection == \PhpOffice\PhpSpreadsheet\Style\Borders::DIAGONAL_UP; $border1 |= $diag_tl_to_rb << 30; $border1 |= $diag_tr_to_lb << 31; @@ -356,20 +356,20 @@ class Xf * @static array of int */ private static $mapBorderStyles = [ - \PhpSpreadsheet\Style\Border::BORDER_NONE => 0x00, - \PhpSpreadsheet\Style\Border::BORDER_THIN => 0x01, - \PhpSpreadsheet\Style\Border::BORDER_MEDIUM => 0x02, - \PhpSpreadsheet\Style\Border::BORDER_DASHED => 0x03, - \PhpSpreadsheet\Style\Border::BORDER_DOTTED => 0x04, - \PhpSpreadsheet\Style\Border::BORDER_THICK => 0x05, - \PhpSpreadsheet\Style\Border::BORDER_DOUBLE => 0x06, - \PhpSpreadsheet\Style\Border::BORDER_HAIR => 0x07, - \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED => 0x08, - \PhpSpreadsheet\Style\Border::BORDER_DASHDOT => 0x09, - \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT => 0x0A, - \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT => 0x0B, - \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT => 0x0C, - \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT => 0x0D, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE => 0x00, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN => 0x01, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM => 0x02, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED => 0x03, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED => 0x04, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK => 0x05, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE => 0x06, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_HAIR => 0x07, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED => 0x08, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT => 0x09, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT => 0x0A, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT => 0x0B, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT => 0x0C, + \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT => 0x0D, ]; /** @@ -392,27 +392,27 @@ class Xf * @static array of int */ private static $mapFillTypes = [ - \PhpSpreadsheet\Style\Fill::FILL_NONE => 0x00, - \PhpSpreadsheet\Style\Fill::FILL_SOLID => 0x01, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_MEDIUMGRAY => 0x02, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRAY => 0x03, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRAY => 0x04, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKHORIZONTAL => 0x05, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKVERTICAL => 0x06, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKDOWN => 0x07, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKUP => 0x08, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRID => 0x09, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKTRELLIS => 0x0A, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTHORIZONTAL => 0x0B, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTVERTICAL => 0x0C, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTDOWN => 0x0D, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTUP => 0x0E, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRID => 0x0F, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTTRELLIS => 0x10, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125 => 0x11, - \PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY0625 => 0x12, - \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR => 0x00, // does not exist in BIFF8 - \PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH => 0x00, // does not exist in BIFF8 + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_NONE => 0x00, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID => 0x01, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_MEDIUMGRAY => 0x02, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRAY => 0x03, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRAY => 0x04, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKHORIZONTAL => 0x05, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKVERTICAL => 0x06, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKDOWN => 0x07, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKUP => 0x08, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKGRID => 0x09, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_DARKTRELLIS => 0x0A, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTHORIZONTAL => 0x0B, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTVERTICAL => 0x0C, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTDOWN => 0x0D, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTUP => 0x0E, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTGRID => 0x0F, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_LIGHTTRELLIS => 0x10, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY125 => 0x11, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_PATTERN_GRAY0625 => 0x12, + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR => 0x00, // does not exist in BIFF8 + \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_PATH => 0x00, // does not exist in BIFF8 ]; /** @@ -435,13 +435,13 @@ class Xf * @static array of int */ private static $mapHAlignments = [ - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL => 0, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT => 1, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER => 2, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT => 3, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_FILL => 4, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY => 5, - \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS => 6, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL => 0, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT => 1, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER => 2, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT => 3, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_FILL => 4, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY => 5, + \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS => 6, ]; /** @@ -464,10 +464,10 @@ class Xf * @static array of int */ private static $mapVAlignments = [ - \PhpSpreadsheet\Style\Alignment::VERTICAL_TOP => 0, - \PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER => 1, - \PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM => 2, - \PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY => 3, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP => 0, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER => 1, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM => 2, + \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY => 3, ]; /** @@ -511,11 +511,11 @@ class Xf private static function mapLocked($locked) { switch ($locked) { - case \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT: + case \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT: return 1; - case \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED: + case \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED: return 1; - case \PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED: + case \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED: return 0; default: return 1; @@ -531,11 +531,11 @@ class Xf private static function mapHidden($hidden) { switch ($hidden) { - case \PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT: + case \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_INHERIT: return 0; - case \PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED: + case \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_PROTECTED: return 1; - case \PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED: + case \PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED: return 0; default: return 0; diff --git a/src/PhpSpreadsheet/Writer/Exception.php b/src/PhpSpreadsheet/Writer/Exception.php index 91e79138..ab75138c 100644 --- a/src/PhpSpreadsheet/Writer/Exception.php +++ b/src/PhpSpreadsheet/Writer/Exception.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Writer; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class Exception extends \PhpSpreadsheet\Exception +class Exception extends \PhpOffice\PhpSpreadsheet\Exception { /** * Error handler callback diff --git a/src/PhpSpreadsheet/Writer/HTML.php b/src/PhpSpreadsheet/Writer/HTML.php index d8d95319..89d04867 100644 --- a/src/PhpSpreadsheet/Writer/HTML.php +++ b/src/PhpSpreadsheet/Writer/HTML.php @@ -1,11 +1,11 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; -use PhpSpreadsheet\Calculation; -use PhpSpreadsheet\Shared\Font; -use PhpSpreadsheet\Shared\StringHelper; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Calculation; +use PhpOffice\PhpSpreadsheet\Shared\Font; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2015 Spreadsheet @@ -83,7 +83,7 @@ class HTML extends BaseWriter implements IWriter /** * Default font * - * @var \PhpSpreadsheet\Style\Font + * @var \PhpOffice\PhpSpreadsheet\Style\Font */ private $defaultFont; @@ -132,7 +132,7 @@ class HTML extends BaseWriter implements IWriter /** * Create a new HTML * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet */ public function __construct(Spreadsheet $spreadsheet) { @@ -144,7 +144,7 @@ class HTML extends BaseWriter implements IWriter * Save Spreadsheet to file * * @param string $pFilename - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { @@ -162,7 +162,7 @@ class HTML extends BaseWriter implements IWriter // Open file $fileHandle = fopen($pFilename, 'wb+'); if ($fileHandle === false) { - throw new \PhpSpreadsheet\Writer\Exception("Could not open file $pFilename for writing."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Could not open file $pFilename for writing."); } // Write headers @@ -195,12 +195,12 @@ class HTML extends BaseWriter implements IWriter private function mapVAlign($vAlign) { switch ($vAlign) { - case \PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_BOTTOM: return 'bottom'; - case \PhpSpreadsheet\Style\Alignment::VERTICAL_TOP: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_TOP: return 'top'; - case \PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER: - case \PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_JUSTIFY: return 'middle'; default: return 'baseline'; @@ -216,16 +216,16 @@ class HTML extends BaseWriter implements IWriter private function mapHAlign($hAlign) { switch ($hAlign) { - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL: return false; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT: return 'left'; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT: return 'right'; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER: - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER_CONTINUOUS: return 'center'; - case \PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY: + case \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_JUSTIFY: return 'justify'; default: return false; @@ -241,33 +241,33 @@ class HTML extends BaseWriter implements IWriter private function mapBorderStyle($borderStyle) { switch ($borderStyle) { - case \PhpSpreadsheet\Style\Border::BORDER_NONE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_NONE: return 'none'; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOT: return '1px dashed'; - case \PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHDOTDOT: return '1px dotted'; - case \PhpSpreadsheet\Style\Border::BORDER_DASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DASHED: return '1px dashed'; - case \PhpSpreadsheet\Style\Border::BORDER_DOTTED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOTTED: return '1px dotted'; - case \PhpSpreadsheet\Style\Border::BORDER_DOUBLE: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_DOUBLE: return '3px double'; - case \PhpSpreadsheet\Style\Border::BORDER_HAIR: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_HAIR: return '1px solid'; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUM: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUM: return '2px solid'; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOT: return '2px dashed'; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHDOTDOT: return '2px dotted'; - case \PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_MEDIUMDASHED: return '2px dashed'; - case \PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_SLANTDASHDOT: return '2px dashed'; - case \PhpSpreadsheet\Style\Border::BORDER_THICK: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THICK: return '3px solid'; - case \PhpSpreadsheet\Style\Border::BORDER_THIN: + case \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN: return '1px solid'; default: // map others to thin @@ -335,14 +335,14 @@ class HTML extends BaseWriter implements IWriter * Generate HTML header * * @param bool $pIncludeStyles Include styles? - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ public function generateHTMLHeader($pIncludeStyles = false) { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Construct HTML @@ -394,14 +394,14 @@ class HTML extends BaseWriter implements IWriter /** * Generate sheet data * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ public function generateSheetData() { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Ensure that Spans have been calculated? @@ -428,10 +428,10 @@ class HTML extends BaseWriter implements IWriter // Get worksheet dimension $dimension = explode(':', $sheet->calculateWorksheetDimension()); - $dimension[0] = \PhpSpreadsheet\Cell::coordinateFromString($dimension[0]); - $dimension[0][0] = \PhpSpreadsheet\Cell::columnIndexFromString($dimension[0][0]) - 1; - $dimension[1] = \PhpSpreadsheet\Cell::coordinateFromString($dimension[1]); - $dimension[1][0] = \PhpSpreadsheet\Cell::columnIndexFromString($dimension[1][0]) - 1; + $dimension[0] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($dimension[0]); + $dimension[0][0] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($dimension[0][0]) - 1; + $dimension[1] = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($dimension[1]); + $dimension[1][0] = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($dimension[1][0]) - 1; // row min,max $rowMin = $dimension[0][1]; @@ -475,7 +475,7 @@ class HTML extends BaseWriter implements IWriter while ($column++ < $dimension[1][0]) { // Cell exists? if ($sheet->cellExistsByColumnAndRow($column, $row)) { - $rowData[$column] = \PhpSpreadsheet\Cell::stringFromColumnIndex($column) . $row; + $rowData[$column] = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($column) . $row; } else { $rowData[$column] = ''; } @@ -513,14 +513,14 @@ class HTML extends BaseWriter implements IWriter /** * Generate sheet tabs * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ public function generateNavigation() { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Fetch sheets @@ -552,19 +552,19 @@ class HTML extends BaseWriter implements IWriter return $html; } - private function extendRowsForChartsAndImages(\PhpSpreadsheet\Worksheet $pSheet, $row) + private function extendRowsForChartsAndImages(\PhpOffice\PhpSpreadsheet\Worksheet $pSheet, $row) { $rowMax = $row; $colMax = 'A'; if ($this->includeCharts) { foreach ($pSheet->getChartCollection() as $chart) { - if ($chart instanceof \PhpSpreadsheet\Chart) { + if ($chart instanceof \PhpOffice\PhpSpreadsheet\Chart) { $chartCoordinates = $chart->getTopLeftPosition(); - $chartTL = \PhpSpreadsheet\Cell::coordinateFromString($chartCoordinates['cell']); - $chartCol = \PhpSpreadsheet\Cell::columnIndexFromString($chartTL[0]); + $chartTL = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($chartCoordinates['cell']); + $chartCol = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($chartTL[0]); if ($chartTL[1] > $rowMax) { $rowMax = $chartTL[1]; - if ($chartCol > \PhpSpreadsheet\Cell::columnIndexFromString($colMax)) { + if ($chartCol > \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($colMax)) { $colMax = $chartTL[0]; } } @@ -573,12 +573,12 @@ class HTML extends BaseWriter implements IWriter } foreach ($pSheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof \PhpSpreadsheet\Worksheet\Drawing) { - $imageTL = \PhpSpreadsheet\Cell::coordinateFromString($drawing->getCoordinates()); - $imageCol = \PhpSpreadsheet\Cell::columnIndexFromString($imageTL[0]); + if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing) { + $imageTL = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($drawing->getCoordinates()); + $imageCol = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($imageTL[0]); if ($imageTL[1] > $rowMax) { $rowMax = $imageTL[1]; - if ($imageCol > \PhpSpreadsheet\Cell::columnIndexFromString($colMax)) { + if ($imageCol > \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($colMax)) { $colMax = $imageTL[0]; } } @@ -606,19 +606,19 @@ class HTML extends BaseWriter implements IWriter /** * Generate image tag in cell * - * @param \PhpSpreadsheet\Worksheet $pSheet \PhpSpreadsheet\Worksheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet \PhpOffice\PhpSpreadsheet\Worksheet * @param string $coordinates Cell coordinates - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ - private function writeImageInCell(\PhpSpreadsheet\Worksheet $pSheet, $coordinates) + private function writeImageInCell(\PhpOffice\PhpSpreadsheet\Worksheet $pSheet, $coordinates) { // Construct HTML $html = ''; // Write images foreach ($pSheet->getDrawingCollection() as $drawing) { - if ($drawing instanceof \PhpSpreadsheet\Worksheet\Drawing) { + if ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\Drawing) { if ($drawing->getCoordinates() == $coordinates) { $filename = $drawing->getPath(); @@ -662,7 +662,7 @@ class HTML extends BaseWriter implements IWriter $imageData . '" border="0" />'; $html .= '</div>'; } - } elseif ($drawing instanceof \PhpSpreadsheet\Worksheet\MemoryDrawing) { + } elseif ($drawing instanceof \PhpOffice\PhpSpreadsheet\Worksheet\MemoryDrawing) { if ($drawing->getCoordinates() != $coordinates) { continue; } @@ -687,22 +687,22 @@ class HTML extends BaseWriter implements IWriter /** * Generate chart tag in cell * - * @param \PhpSpreadsheet\Worksheet $pSheet \PhpSpreadsheet\Worksheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet \PhpOffice\PhpSpreadsheet\Worksheet * @param string $coordinates Cell coordinates - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ - private function writeChartInCell(\PhpSpreadsheet\Worksheet $pSheet, $coordinates) + private function writeChartInCell(\PhpOffice\PhpSpreadsheet\Worksheet $pSheet, $coordinates) { // Construct HTML $html = ''; // Write charts foreach ($pSheet->getChartCollection() as $chart) { - if ($chart instanceof \PhpSpreadsheet\Chart) { + if ($chart instanceof \PhpOffice\PhpSpreadsheet\Chart) { $chartCoordinates = $chart->getTopLeftPosition(); if ($chartCoordinates['cell'] == $coordinates) { - $chartFileName = \PhpSpreadsheet\Shared\File::sysGetTempDir() . '/' . uniqid() . '.png'; + $chartFileName = \PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir() . '/' . uniqid() . '.png'; if (!$chart->render($chartFileName)) { return; } @@ -735,14 +735,14 @@ class HTML extends BaseWriter implements IWriter * Generate CSS styles * * @param bool $generateSurroundingHTML Generate surrounding HTML tags? (&lt;style&gt; and &lt;/style&gt;) - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ public function generateStyles($generateSurroundingHTML = true) { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Build CSS @@ -777,14 +777,14 @@ class HTML extends BaseWriter implements IWriter * Build CSS styles * * @param bool $generateSurroundingHTML Generate surrounding HTML style? (html { }) - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return array */ public function buildCSS($generateSurroundingHTML = true) { // Spreadsheet object known? if (is_null($this->spreadsheet)) { - throw new \PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Internal Spreadsheet object not set to an instance of an object.'); } // Cached? @@ -860,7 +860,7 @@ class HTML extends BaseWriter implements IWriter $sheet->calculateColumnWidths(); // col elements, initialize - $highestColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()) - 1; + $highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()) - 1; $column = -1; while ($column++ < $highestColumnIndex) { $this->columnWidths[$sheetIndex][$column] = 42; // approximation @@ -869,9 +869,9 @@ class HTML extends BaseWriter implements IWriter // col elements, loop through columnDimensions and set width foreach ($sheet->getColumnDimensions() as $columnDimension) { - if (($width = \PhpSpreadsheet\Shared\Drawing::cellDimensionToPixels($columnDimension->getWidth(), $this->defaultFont)) >= 0) { - $width = \PhpSpreadsheet\Shared\Drawing::pixelsToPoints($width); - $column = \PhpSpreadsheet\Cell::columnIndexFromString($columnDimension->getColumnIndex()) - 1; + if (($width = \PhpOffice\PhpSpreadsheet\Shared\Drawing::cellDimensionToPixels($columnDimension->getWidth(), $this->defaultFont)) >= 0) { + $width = \PhpOffice\PhpSpreadsheet\Shared\Drawing::pixelsToPoints($width); + $column = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($columnDimension->getColumnIndex()) - 1; $this->columnWidths[$sheetIndex][$column] = $width; $css['table.sheet' . $sheetIndex . ' col.col' . $column]['width'] = $width . 'pt'; @@ -931,10 +931,10 @@ class HTML extends BaseWriter implements IWriter /** * Create CSS style * - * @param \PhpSpreadsheet\Style $pStyle + * @param \PhpOffice\PhpSpreadsheet\Style $pStyle * @return array */ - private function createCSSStyle(\PhpSpreadsheet\Style $pStyle) + private function createCSSStyle(\PhpOffice\PhpSpreadsheet\Style $pStyle) { // Construct CSS $css = ''; @@ -952,12 +952,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\PhpSpreadsheet\Style\Alignment) + * Create CSS style (\PhpOffice\PhpSpreadsheet\Style\Alignment) * - * @param \PhpSpreadsheet\Style\Alignment $pStyle \PhpSpreadsheet\Style\Alignment + * @param \PhpOffice\PhpSpreadsheet\Style\Alignment $pStyle \PhpOffice\PhpSpreadsheet\Style\Alignment * @return array */ - private function createCSSStyleAlignment(\PhpSpreadsheet\Style\Alignment $pStyle) + private function createCSSStyleAlignment(\PhpOffice\PhpSpreadsheet\Style\Alignment $pStyle) { // Construct CSS $css = []; @@ -975,12 +975,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\PhpSpreadsheet\Style\Font) + * Create CSS style (\PhpOffice\PhpSpreadsheet\Style\Font) * - * @param \PhpSpreadsheet\Style\Font $pStyle \PhpSpreadsheet\Style\Font + * @param \PhpOffice\PhpSpreadsheet\Style\Font $pStyle \PhpOffice\PhpSpreadsheet\Style\Font * @return array */ - private function createCSSStyleFont(\PhpSpreadsheet\Style\Font $pStyle) + private function createCSSStyleFont(\PhpOffice\PhpSpreadsheet\Style\Font $pStyle) { // Construct CSS $css = []; @@ -989,9 +989,9 @@ class HTML extends BaseWriter implements IWriter if ($pStyle->getBold()) { $css['font-weight'] = 'bold'; } - if ($pStyle->getUnderline() != \PhpSpreadsheet\Style\Font::UNDERLINE_NONE && $pStyle->getStrikethrough()) { + if ($pStyle->getUnderline() != \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE && $pStyle->getStrikethrough()) { $css['text-decoration'] = 'underline line-through'; - } elseif ($pStyle->getUnderline() != \PhpSpreadsheet\Style\Font::UNDERLINE_NONE) { + } elseif ($pStyle->getUnderline() != \PhpOffice\PhpSpreadsheet\Style\Font::UNDERLINE_NONE) { $css['text-decoration'] = 'underline'; } elseif ($pStyle->getStrikethrough()) { $css['text-decoration'] = 'line-through'; @@ -1008,12 +1008,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\PhpSpreadsheet\Style\Borders) + * Create CSS style (\PhpOffice\PhpSpreadsheet\Style\Borders) * - * @param \PhpSpreadsheet\Style\Borders $pStyle \PhpSpreadsheet\Style\Borders + * @param \PhpOffice\PhpSpreadsheet\Style\Borders $pStyle \PhpOffice\PhpSpreadsheet\Style\Borders * @return array */ - private function createCSSStyleBorders(\PhpSpreadsheet\Style\Borders $pStyle) + private function createCSSStyleBorders(\PhpOffice\PhpSpreadsheet\Style\Borders $pStyle) { // Construct CSS $css = []; @@ -1028,12 +1028,12 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\PhpSpreadsheet\Style\Border) + * Create CSS style (\PhpOffice\PhpSpreadsheet\Style\Border) * - * @param \PhpSpreadsheet\Style\Border $pStyle \PhpSpreadsheet\Style\Border + * @param \PhpOffice\PhpSpreadsheet\Style\Border $pStyle \PhpOffice\PhpSpreadsheet\Style\Border * @return string */ - private function createCSSStyleBorder(\PhpSpreadsheet\Style\Border $pStyle) + private function createCSSStyleBorder(\PhpOffice\PhpSpreadsheet\Style\Border $pStyle) { // Create CSS - add !important to non-none border styles for merged cells $borderStyle = $this->mapBorderStyle($pStyle->getBorderStyle()); @@ -1043,18 +1043,18 @@ class HTML extends BaseWriter implements IWriter } /** - * Create CSS style (\PhpSpreadsheet\Style\Fill) + * Create CSS style (\PhpOffice\PhpSpreadsheet\Style\Fill) * - * @param \PhpSpreadsheet\Style\Fill $pStyle \PhpSpreadsheet\Style\Fill + * @param \PhpOffice\PhpSpreadsheet\Style\Fill $pStyle \PhpOffice\PhpSpreadsheet\Style\Fill * @return array */ - private function createCSSStyleFill(\PhpSpreadsheet\Style\Fill $pStyle) + private function createCSSStyleFill(\PhpOffice\PhpSpreadsheet\Style\Fill $pStyle) { // Construct HTML $css = []; // Create CSS - $value = $pStyle->getFillType() == \PhpSpreadsheet\Style\Fill::FILL_NONE ? + $value = $pStyle->getFillType() == \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_NONE ? 'white' : '#' . $pStyle->getStartColor()->getRGB(); $css['background-color'] = $value; @@ -1077,8 +1077,8 @@ class HTML extends BaseWriter implements IWriter /** * Generate table header * - * @param \PhpSpreadsheet\Worksheet $pSheet The worksheet for the table we are writing - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet The worksheet for the table we are writing + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ private function generateTableHeader($pSheet) @@ -1104,7 +1104,7 @@ class HTML extends BaseWriter implements IWriter } // Write <col> elements - $highestColumnIndex = \PhpSpreadsheet\Cell::columnIndexFromString($pSheet->getHighestColumn()) - 1; + $highestColumnIndex = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($pSheet->getHighestColumn()) - 1; $i = -1; while ($i++ < $highestColumnIndex) { if (!$this->isPdf) { @@ -1124,7 +1124,7 @@ class HTML extends BaseWriter implements IWriter /** * Generate table footer * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ private function generateTableFooter() { @@ -1136,13 +1136,13 @@ class HTML extends BaseWriter implements IWriter /** * Generate row * - * @param \PhpSpreadsheet\Worksheet $pSheet \PhpSpreadsheet\Worksheet + * @param \PhpOffice\PhpSpreadsheet\Worksheet $pSheet \PhpOffice\PhpSpreadsheet\Worksheet * @param array $pValues Array containing cells in a row * @param int $pRow Row number (0-based) - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string */ - private function generateRow(\PhpSpreadsheet\Worksheet $pSheet, $pValues = null, $pRow = 0, $cellType = 'td') + private function generateRow(\PhpOffice\PhpSpreadsheet\Worksheet $pSheet, $pValues = null, $pRow = 0, $cellType = 'td') { if (is_array($pValues)) { // Construct HTML @@ -1182,7 +1182,7 @@ class HTML extends BaseWriter implements IWriter $colNum = 0; foreach ($pValues as $cellAddress) { $cell = ($cellAddress > '') ? $pSheet->getCell($cellAddress) : ''; - $coordinate = \PhpSpreadsheet\Cell::stringFromColumnIndex($colNum) . ($pRow + 1); + $coordinate = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($colNum) . ($pRow + 1); if (!$this->useInlineCss) { $cssClass = ''; $cssClass = 'column' . $colNum; @@ -1204,19 +1204,19 @@ class HTML extends BaseWriter implements IWriter // initialize $cellData = '&nbsp;'; - // \PhpSpreadsheet\Cell - if ($cell instanceof \PhpSpreadsheet\Cell) { + // \PhpOffice\PhpSpreadsheet\Cell + if ($cell instanceof \PhpOffice\PhpSpreadsheet\Cell) { $cellData = ''; if (is_null($cell->getParent())) { $cell->attach($pSheet); } // Value - if ($cell->getValue() instanceof \PhpSpreadsheet\RichText) { + if ($cell->getValue() instanceof \PhpOffice\PhpSpreadsheet\RichText) { // Loop through rich text elements $elements = $cell->getValue()->getRichTextElements(); foreach ($elements as $element) { // Rich text start? - if ($element instanceof \PhpSpreadsheet\RichText\Run) { + if ($element instanceof \PhpOffice\PhpSpreadsheet\RichText\Run) { $cellData .= '<span style="' . $this->assembleCSS($this->createCSSStyleFont($element->getFont())) . '">'; if ($element->getFont()->getSuperScript()) { @@ -1230,7 +1230,7 @@ class HTML extends BaseWriter implements IWriter $cellText = $element->getText(); $cellData .= htmlspecialchars($cellText); - if ($element instanceof \PhpSpreadsheet\RichText\Run) { + if ($element instanceof \PhpOffice\PhpSpreadsheet\RichText\Run) { if ($element->getFont()->getSuperScript()) { $cellData .= '</sup>'; } elseif ($element->getFont()->getSubScript()) { @@ -1242,13 +1242,13 @@ class HTML extends BaseWriter implements IWriter } } else { if ($this->preCalculateFormulas) { - $cellData = \PhpSpreadsheet\Style\NumberFormat::toFormattedString( + $cellData = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString( $cell->getCalculatedValue(), $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(), [$this, 'formatColor'] ); } else { - $cellData = \PhpSpreadsheet\Style\NumberFormat::toFormattedString( + $cellData = \PhpOffice\PhpSpreadsheet\Style\NumberFormat::toFormattedString( $cell->getValue(), $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex())->getNumberFormat()->getFormatCode(), [$this, 'formatColor'] @@ -1286,7 +1286,7 @@ class HTML extends BaseWriter implements IWriter // General horizontal alignment: Actual horizontal alignment depends on dataType $sharedStyle = $pSheet->getParent()->getCellXfByIndex($cell->getXfIndex()); - if ($sharedStyle->getAlignment()->getHorizontal() == \PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL + if ($sharedStyle->getAlignment()->getHorizontal() == \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_GENERAL && isset($this->cssStyles['.' . $cell->getDataType()]['text-align'])) { $cssClass['text-align'] = $this->cssStyles['.' . $cell->getDataType()]['text-align']; } @@ -1312,7 +1312,7 @@ class HTML extends BaseWriter implements IWriter // Also apply style from last cell in merge to fix borders - // relies on !important for non-none border declarations in createCSSStyleBorder - $endCellCoord = \PhpSpreadsheet\Cell::stringFromColumnIndex($colNum + $colSpan - 1) . ($pRow + $rowSpan); + $endCellCoord = \PhpOffice\PhpSpreadsheet\Cell::stringFromColumnIndex($colNum + $colSpan - 1) . ($pRow + $rowSpan); if (!$this->useInlineCss) { $cssClass .= ' style' . $pSheet->getCell($endCellCoord)->getXfIndex(); } @@ -1325,7 +1325,7 @@ class HTML extends BaseWriter implements IWriter if (!$this->useInlineCss) { $html .= ' class="' . $cssClass . '"'; } else { - //** Necessary redundant code for the sake of PhpSpreadsheet\Writer\PDF ** + //** Necessary redundant code for the sake of \PhpOffice\PhpSpreadsheet\Writer\PDF ** // We must explicitly write the width of the <td> element because TCPDF // does not recognize e.g. <col style="width:42pt"> $width = 0; @@ -1381,7 +1381,7 @@ class HTML extends BaseWriter implements IWriter // Return return $html; } else { - throw new \PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Invalid parameters passed.'); } } @@ -1520,15 +1520,15 @@ class HTML extends BaseWriter implements IWriter // loop through all Excel merged cells foreach ($sheet->getMergeCells() as $cells) { - list($cells) = \PhpSpreadsheet\Cell::splitRange($cells); + list($cells) = \PhpOffice\PhpSpreadsheet\Cell::splitRange($cells); $first = $cells[0]; $last = $cells[1]; - list($fc, $fr) = \PhpSpreadsheet\Cell::coordinateFromString($first); - $fc = \PhpSpreadsheet\Cell::columnIndexFromString($fc) - 1; + list($fc, $fr) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($first); + $fc = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($fc) - 1; - list($lc, $lr) = \PhpSpreadsheet\Cell::coordinateFromString($last); - $lc = \PhpSpreadsheet\Cell::columnIndexFromString($lc) - 1; + list($lc, $lr) = \PhpOffice\PhpSpreadsheet\Cell::coordinateFromString($last); + $lc = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($lc) - 1; // loop through the individual cells in the individual merge $r = $fr - 1; @@ -1558,7 +1558,7 @@ class HTML extends BaseWriter implements IWriter // Identify which rows should be omitted in HTML. These are the rows where all the cells // participate in a merge and the where base cells are somewhere above. - $countColumns = \PhpSpreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()); + $countColumns = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($sheet->getHighestColumn()); foreach ($candidateSpannedRow as $rowIndex) { if (isset($this->isSpannedCell[$sheetIndex][$rowIndex])) { if (count($this->isSpannedCell[$sheetIndex][$rowIndex]) == $countColumns) { @@ -1592,7 +1592,7 @@ class HTML extends BaseWriter implements IWriter $this->spansAreCalculated = true; } - private function setMargins(\PhpSpreadsheet\Worksheet $pSheet) + private function setMargins(\PhpOffice\PhpSpreadsheet\Worksheet $pSheet) { $htmlPage = '@page { '; $htmlBody = 'body { '; diff --git a/src/PhpSpreadsheet/Writer/IWriter.php b/src/PhpSpreadsheet/Writer/IWriter.php index 57bc0820..fe3edd08 100644 --- a/src/PhpSpreadsheet/Writer/IWriter.php +++ b/src/PhpSpreadsheet/Writer/IWriter.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -30,7 +30,7 @@ interface IWriter * Save PhpSpreadsheet to file * * @param string $pFilename Name of the file to save - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null); } diff --git a/src/PhpSpreadsheet/Writer/OpenDocument.php b/src/PhpSpreadsheet/Writer/OpenDocument.php index 57c2821e..8efc3b9f 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -45,20 +45,20 @@ class OpenDocument extends BaseWriter implements IWriter /** * Create a new OpenDocument * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet */ - public function __construct(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function __construct(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { $this->setSpreadsheet($spreadsheet); $writerPartsArray = [ - 'content' => \PhpSpreadsheet\Writer\OpenDocument\Content::class, - 'meta' => \PhpSpreadsheet\Writer\OpenDocument\Meta::class, - 'meta_inf' => \PhpSpreadsheet\Writer\OpenDocument\MetaInf::class, - 'mimetype' => \PhpSpreadsheet\Writer\OpenDocument\Mimetype::class, - 'settings' => \PhpSpreadsheet\Writer\OpenDocument\Settings::class, - 'styles' => \PhpSpreadsheet\Writer\OpenDocument\Styles::class, - 'thumbnails' => \PhpSpreadsheet\Writer\OpenDocument\Thumbnails::class, + 'content' => \PhpOffice\PhpSpreadsheet\Writer\OpenDocument\Content::class, + 'meta' => \PhpOffice\PhpSpreadsheet\Writer\OpenDocument\Meta::class, + 'meta_inf' => \PhpOffice\PhpSpreadsheet\Writer\OpenDocument\MetaInf::class, + 'mimetype' => \PhpOffice\PhpSpreadsheet\Writer\OpenDocument\Mimetype::class, + 'settings' => \PhpOffice\PhpSpreadsheet\Writer\OpenDocument\Settings::class, + 'styles' => \PhpOffice\PhpSpreadsheet\Writer\OpenDocument\Styles::class, + 'thumbnails' => \PhpOffice\PhpSpreadsheet\Writer\OpenDocument\Thumbnails::class, ]; foreach ($writerPartsArray as $writer => $class) { @@ -85,12 +85,12 @@ class OpenDocument extends BaseWriter implements IWriter * Save PhpSpreadsheet to file * * @param string $pFilename - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { if (!$this->spreadSheet) { - throw new \PhpSpreadsheet\Writer\Exception('PhpSpreadsheet object unassigned.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('PhpSpreadsheet object unassigned.'); } // garbage collect @@ -99,7 +99,7 @@ class OpenDocument extends BaseWriter implements IWriter // If $pFilename is php://output or php://stdout, make it a temporary file... $originalFilename = $pFilename; if (strtolower($pFilename) == 'php://output' || strtolower($pFilename) == 'php://stdout') { - $pFilename = @tempnam(\PhpSpreadsheet\Shared\File::sysGetTempDir(), 'phpxltmp'); + $pFilename = @tempnam(\PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir(), 'phpxltmp'); if ($pFilename == '') { $pFilename = $originalFilename; } @@ -117,13 +117,13 @@ class OpenDocument extends BaseWriter implements IWriter // Close file if ($objZip->close() === false) { - throw new \PhpSpreadsheet\Writer\Exception("Could not close zip file $pFilename."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Could not close zip file $pFilename."); } // If a temporary file was used, copy it to the correct file stream if ($originalFilename != $pFilename) { if (copy($pFilename, $originalFilename) === false) { - throw new \PhpSpreadsheet\Writer\Exception("Could not copy temporary zip file $pFilename to $originalFilename."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Could not copy temporary zip file $pFilename to $originalFilename."); } @unlink($pFilename); } @@ -133,13 +133,13 @@ class OpenDocument extends BaseWriter implements IWriter * Create zip object * * @param string $pFilename - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return ZipArchive */ private function createZip($pFilename) { // Create new ZIP file and open it for writing - $zipClass = \PhpSpreadsheet\Settings::getZipClass(); + $zipClass = \PhpOffice\PhpSpreadsheet\Settings::getZipClass(); $objZip = new $zipClass(); // Retrieve OVERWRITE and CREATE constants from the instantiated zip class @@ -154,7 +154,7 @@ class OpenDocument extends BaseWriter implements IWriter // Try opening the ZIP file if ($objZip->open($pFilename, $zipOverWrite) !== true) { if ($objZip->open($pFilename, $zipCreate) !== true) { - throw new \PhpSpreadsheet\Writer\Exception("Could not open $pFilename for writing."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Could not open $pFilename for writing."); } } @@ -164,7 +164,7 @@ class OpenDocument extends BaseWriter implements IWriter /** * Get Spreadsheet object * - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return Spreadsheet */ public function getSpreadsheet() @@ -172,18 +172,18 @@ class OpenDocument extends BaseWriter implements IWriter if ($this->spreadSheet !== null) { return $this->spreadSheet; } else { - throw new \PhpSpreadsheet\Writer\Exception('No PhpSpreadsheet assigned.'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('No PhpSpreadsheet assigned.'); } } /** * Set PhpSpreadsheet object * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return Excel2007 */ - public function setSpreadsheet(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function setSpreadsheet(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { $this->spreadSheet = $spreadsheet; diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php b/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php index ce218364..dc57f6df 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Cell/Comment.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument\Cell; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument\Cell; /** * PhpSpreadsheet @@ -34,7 +34,7 @@ namespace PhpSpreadsheet\Writer\OpenDocument\Cell; */ class Comment { - public static function write(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\Cell $cell) + public static function write(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Cell $cell) { $comments = $cell->getWorksheet()->getComments(); if (!isset($comments[$cell->getCoordinate()])) { diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Content.php b/src/PhpSpreadsheet/Writer/OpenDocument/Content.php index 3453fd31..29f285b7 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Content.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Content.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * PhpSpreadsheet @@ -40,11 +40,11 @@ class Content extends WriterPart /** * Write content.xml to XML format * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function write(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { $spreadsheet = $this->getParentWriter()->getSpreadsheet(); /* @var $spreadsheet PhpSpreadsheet */ @@ -52,9 +52,9 @@ class Content extends WriterPart $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header @@ -115,9 +115,9 @@ class Content extends WriterPart /** * Write sheets * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter */ - private function writeSheets(\PhpSpreadsheet\Shared\XMLWriter $objWriter) + private function writeSheets(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter) { $spreadsheet = $this->getParentWriter()->getSpreadsheet(); /* @var $spreadsheet PhpSpreadsheet */ @@ -137,10 +137,10 @@ class Content extends WriterPart /** * Write rows of the specified sheet * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter - * @param \PhpSpreadsheet\Worksheet $sheet + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter + * @param \PhpOffice\PhpSpreadsheet\Worksheet $sheet */ - private function writeRows(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\Worksheet $sheet) + private function writeRows(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet $sheet) { $number_rows_repeated = self::NUMBER_ROWS_REPEATED_MAX; $span_row = 0; @@ -173,34 +173,34 @@ class Content extends WriterPart /** * Write cells of the specified row * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter - * @param \PhpSpreadsheet\Worksheet\Row $row - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter + * @param \PhpOffice\PhpSpreadsheet\Worksheet\Row $row + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - private function writeCells(\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpSpreadsheet\Worksheet\Row $row) + private function writeCells(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, \PhpOffice\PhpSpreadsheet\Worksheet\Row $row) { $number_cols_repeated = self::NUMBER_COLS_REPEATED_MAX; $prev_column = -1; $cells = $row->getCellIterator(); while ($cells->valid()) { $cell = $cells->current(); - $column = \PhpSpreadsheet\Cell::columnIndexFromString($cell->getColumn()) - 1; + $column = \PhpOffice\PhpSpreadsheet\Cell::columnIndexFromString($cell->getColumn()) - 1; $this->writeCellSpan($objWriter, $column, $prev_column); $objWriter->startElement('table:table-cell'); switch ($cell->getDataType()) { - case \PhpSpreadsheet\Cell\DataType::TYPE_BOOL: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_BOOL: $objWriter->writeAttribute('office:value-type', 'boolean'); $objWriter->writeAttribute('office:value', $cell->getValue()); $objWriter->writeElement('text:p', $cell->getValue()); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_ERROR: - throw new \PhpSpreadsheet\Writer\Exception('Writing of error not implemented yet.'); + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_ERROR: + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Writing of error not implemented yet.'); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_FORMULA: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_FORMULA: try { $formula_value = $cell->getCalculatedValue(); } catch (Exception $e) { @@ -216,17 +216,17 @@ class Content extends WriterPart $objWriter->writeElement('text:p', $formula_value); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_INLINE: - throw new \PhpSpreadsheet\Writer\Exception('Writing of inline not implemented yet.'); + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_INLINE: + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Writing of inline not implemented yet.'); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_NUMERIC: $objWriter->writeAttribute('office:value-type', 'float'); $objWriter->writeAttribute('office:value', $cell->getValue()); $objWriter->writeElement('text:p', $cell->getValue()); break; - case \PhpSpreadsheet\Cell\DataType::TYPE_STRING: + case \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING: $objWriter->writeAttribute('office:value-type', 'string'); $objWriter->writeElement('text:p', $cell->getValue()); break; @@ -251,11 +251,11 @@ class Content extends WriterPart /** * Write span * - * @param \PhpSpreadsheet\Shared\XMLWriter $objWriter + * @param \PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter * @param int $curColumn * @param int $prevColumn */ - private function writeCellSpan(\PhpSpreadsheet\Shared\XMLWriter $objWriter, $curColumn, $prevColumn) + private function writeCellSpan(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter $objWriter, $curColumn, $prevColumn) { $diff = $curColumn - $prevColumn - 1; if (1 === $diff) { diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php b/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php index 44d7187a..c9a68253 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Meta.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -29,11 +29,11 @@ class Meta extends WriterPart /** * Write meta.xml to XML format * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function write(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { $spreadsheet = $this->getParentWriter()->getSpreadsheet(); @@ -41,9 +41,9 @@ class Meta extends WriterPart $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php b/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php index 3054d13d..5924605e 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/MetaInf.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -29,11 +29,11 @@ class MetaInf extends WriterPart /** * Write META-INF/manifest.xml to XML format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeManifest(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeManifest(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { $spreadsheet = $this->getParentWriter()->getSpreadsheet(); @@ -41,9 +41,9 @@ class MetaInf extends WriterPart $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Mimetype.php b/src/PhpSpreadsheet/Writer/OpenDocument/Mimetype.php index 1eddda63..33a722c9 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Mimetype.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Mimetype.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * This library is free software; you can redistribute it and/or @@ -27,11 +27,11 @@ class Mimetype extends WriterPart /** * Write mimetype to plain text format * - * @param \PhpSpreadsheet\SpreadSheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function write(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { return 'application/vnd.oasis.opendocument.spreadsheet'; } diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php b/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php index 01e74f96..2511b893 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Settings.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -29,11 +29,11 @@ class Settings extends WriterPart /** * Write settings.xml to XML format * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function write(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { $spreadsheet = $this->getParentWriter()->getSpreadsheet(); @@ -41,9 +41,9 @@ class Settings extends WriterPart $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php b/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php index d18746a8..cadf27cc 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Styles.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -29,11 +29,11 @@ class Styles extends WriterPart /** * Write styles.xml to XML format * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function write(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function write(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { if (!$spreadsheet) { $spreadsheet = $this->getParentWriter()->getSpreadsheet(); @@ -41,9 +41,9 @@ class Styles extends WriterPart $objWriter = null; if ($this->getParentWriter()->getUseDiskCaching()) { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_DISK, $this->getParentWriter()->getDiskCachingDirectory()); } else { - $objWriter = new \PhpSpreadsheet\Shared\XMLWriter(\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); + $objWriter = new \PhpOffice\PhpSpreadsheet\Shared\XMLWriter(\PhpOffice\PhpSpreadsheet\Shared\XMLWriter::STORAGE_MEMORY); } // XML header diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/Thumbnails.php b/src/PhpSpreadsheet/Writer/OpenDocument/Thumbnails.php index f92b2808..5648d9b3 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/Thumbnails.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/Thumbnails.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -29,11 +29,11 @@ class Thumbnails extends WriterPart /** * Write Thumbnails/thumbnail.png to PNG format * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet - * @throws \PhpSpreadsheet\Writer\Exception + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception * @return string XML Output */ - public function writeThumbnail(\PhpSpreadsheet\SpreadSheet $spreadsheet = null) + public function writeThumbnail(\PhpOffice\PhpSpreadsheet\SpreadSheet $spreadsheet = null) { return ''; } diff --git a/src/PhpSpreadsheet/Writer/OpenDocument/WriterPart.php b/src/PhpSpreadsheet/Writer/OpenDocument/WriterPart.php index a08f0d05..55cc6fa1 100644 --- a/src/PhpSpreadsheet/Writer/OpenDocument/WriterPart.php +++ b/src/PhpSpreadsheet/Writer/OpenDocument/WriterPart.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\OpenDocument; +namespace PhpOffice\PhpSpreadsheet\Writer\OpenDocument; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -24,6 +24,6 @@ namespace PhpSpreadsheet\Writer\OpenDocument; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -abstract class WriterPart extends \PhpSpreadsheet\Writer\Excel2007\WriterPart +abstract class WriterPart extends \PhpOffice\PhpSpreadsheet\Writer\Excel2007\WriterPart { } diff --git a/src/PhpSpreadsheet/Writer/PDF.php b/src/PhpSpreadsheet/Writer/PDF.php index 83031391..564dd4c5 100644 --- a/src/PhpSpreadsheet/Writer/PDF.php +++ b/src/PhpSpreadsheet/Writer/PDF.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheet\Writer; +namespace PhpOffice\PhpSpreadsheet\Writer; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\Spreadsheet; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -38,17 +38,17 @@ class PDF implements IWriter /** * Instantiate a new renderer of the configured type within this container class * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet PhpSpreadsheet object * @throws Exception when PDF library is not configured */ public function __construct(Spreadsheet $spreadsheet) { - $pdfLibraryName = \PhpSpreadsheet\Settings::getPdfRendererName(); + $pdfLibraryName = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererName(); if (is_null($pdfLibraryName)) { throw new Exception('PDF Rendering library has not been defined.'); } - $pdfLibraryPath = \PhpSpreadsheet\Settings::getPdfRendererPath(); + $pdfLibraryPath = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath(); if (is_null($pdfLibraryName)) { throw new Exception('PDF Rendering library path has not been defined.'); } @@ -58,7 +58,7 @@ class PDF implements IWriter set_include_path(get_include_path() . PATH_SEPARATOR . $pdfLibraryPath); } - $rendererName = '\\PhpSpreadsheet\\Writer\\PDF\\' . $pdfLibraryName; + $rendererName = '\\PhpOffice\\PhpSpreadsheet\\Writer\\PDF\\' . $pdfLibraryName; $this->renderer = new $rendererName($spreadsheet); } diff --git a/src/PhpSpreadsheet/Writer/PDF/Core.php b/src/PhpSpreadsheet/Writer/PDF/Core.php index e983f595..8e20c3ff 100644 --- a/src/PhpSpreadsheet/Writer/PDF/Core.php +++ b/src/PhpSpreadsheet/Writer/PDF/Core.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheet\Writer\PDF; +namespace PhpOffice\PhpSpreadsheet\Writer\PDF; /** * Copyright (c) 2006 - 2015 PhpSpreadsheet @@ -24,7 +24,7 @@ namespace PhpSpreadsheet\Writer\PDF; * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -abstract class Core extends \PhpSpreadsheet\Writer\HTML +abstract class Core extends \PhpOffice\PhpSpreadsheet\Writer\HTML { /** * Temporary storage directory @@ -67,84 +67,84 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML * @var array */ protected static $paperSizes = [ - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER => 'LETTER', // (8.5 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_SMALL => 'LETTER', // (8.5 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID => [792.00, 1224.00], // (11 in. by 17 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEDGER => [1224.00, 792.00], // (17 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL => 'LEGAL', // (8.5 in. by 14 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STATEMENT => [396.00, 612.00], // (5.5 in. by 8.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_EXECUTIVE => 'EXECUTIVE', // (7.25 in. by 10.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3 => 'A3', // (297 mm by 420 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4 => 'A4', // (210 mm by 297 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_SMALL => 'A4', // (210 mm by 297 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5 => 'A5', // (148 mm by 210 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4 => 'B4', // (250 mm by 353 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5 => 'B5', // (176 mm by 250 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_FOLIO => 'FOLIO', // (8.5 in. by 13 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_QUARTO => [609.45, 779.53], // (215 mm by 275 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_1 => [720.00, 1008.00], // (10 in. by 14 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_2 => [792.00, 1224.00], // (11 in. by 17 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NOTE => 'LETTER', // (8.5 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO9_ENVELOPE => [279.00, 639.00], // (3.875 in. by 8.875 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO10_ENVELOPE => [297.00, 684.00], // (4.125 in. by 9.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO11_ENVELOPE => [324.00, 747.00], // (4.5 in. by 10.375 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO12_ENVELOPE => [342.00, 792.00], // (4.75 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO14_ENVELOPE => [360.00, 828.00], // (5 in. by 11.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C => [1224.00, 1584.00], // (17 in. by 22 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_D => [1584.00, 2448.00], // (22 in. by 34 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_E => [2448.00, 3168.00], // (34 in. by 44 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_DL_ENVELOPE => [311.81, 623.62], // (110 mm by 220 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C5_ENVELOPE => 'C5', // (162 mm by 229 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C3_ENVELOPE => 'C3', // (324 mm by 458 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C4_ENVELOPE => 'C4', // (229 mm by 324 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C6_ENVELOPE => 'C6', // (114 mm by 162 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C65_ENVELOPE => [323.15, 649.13], // (114 mm by 229 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4_ENVELOPE => 'B4', // (250 mm by 353 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5_ENVELOPE => 'B5', // (176 mm by 250 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B6_ENVELOPE => [498.90, 354.33], // (176 mm by 125 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ITALY_ENVELOPE => [311.81, 651.97], // (110 mm by 230 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_MONARCH_ENVELOPE => [279.00, 540.00], // (3.875 in. by 7.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_6_3_4_ENVELOPE => [261.00, 468.00], // (3.625 in. by 6.5 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_US_STANDARD_FANFOLD => [1071.00, 792.00], // (14.875 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD => [612.00, 864.00], // (8.5 in. by 12 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD => 'FOLIO', // (8.5 in. by 13 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B4 => 'B4', // (250 mm by 353 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD => [566.93, 419.53], // (200 mm by 148 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_1 => [648.00, 792.00], // (9 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_2 => [720.00, 792.00], // (10 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_3 => [1080.00, 792.00], // (15 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_INVITE_ENVELOPE => [623.62, 623.62], // (220 mm by 220 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER => [667.80, 1080.00], // (9.275 in. by 15 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER => [841.68, 1296.00], // (11.69 in. by 18 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_EXTRA_PAPER => [668.98, 912.76], // (236 mm by 322 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER => [595.80, 792.00], // (8.275 in. by 11 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER => 'A4', // (210 mm by 297 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER => [643.46, 1009.13], // (227 mm by 356 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER => [864.57, 1380.47], // (305 mm by 487 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_PLUS_PAPER => [612.00, 913.68], // (8.5 in. by 12.69 in.) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_PLUS_PAPER => [595.28, 935.43], // (210 mm by 330 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER => 'A5', // (148 mm by 210 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER => [515.91, 728.50], // (182 mm by 257 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_EXTRA_PAPER => [493.23, 666.14], // (174 mm by 235 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER => [569.76, 782.36], // (201 mm by 276 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A2_PAPER => 'A2', // (420 mm by 594 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER => 'A3', // (297 mm by 420 mm) - \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER => 'LETTER', // (8.5 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_SMALL => 'LETTER', // (8.5 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID => [792.00, 1224.00], // (11 in. by 17 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEDGER => [1224.00, 792.00], // (17 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL => 'LEGAL', // (8.5 in. by 14 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STATEMENT => [396.00, 612.00], // (5.5 in. by 8.5 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_EXECUTIVE => 'EXECUTIVE', // (7.25 in. by 10.5 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3 => 'A3', // (297 mm by 420 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4 => 'A4', // (210 mm by 297 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_SMALL => 'A4', // (210 mm by 297 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5 => 'A5', // (148 mm by 210 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4 => 'B4', // (250 mm by 353 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5 => 'B5', // (176 mm by 250 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_FOLIO => 'FOLIO', // (8.5 in. by 13 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_QUARTO => [609.45, 779.53], // (215 mm by 275 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_1 => [720.00, 1008.00], // (10 in. by 14 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_2 => [792.00, 1224.00], // (11 in. by 17 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NOTE => 'LETTER', // (8.5 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO9_ENVELOPE => [279.00, 639.00], // (3.875 in. by 8.875 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO10_ENVELOPE => [297.00, 684.00], // (4.125 in. by 9.5 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO11_ENVELOPE => [324.00, 747.00], // (4.5 in. by 10.375 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO12_ENVELOPE => [342.00, 792.00], // (4.75 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_NO14_ENVELOPE => [360.00, 828.00], // (5 in. by 11.5 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C => [1224.00, 1584.00], // (17 in. by 22 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_D => [1584.00, 2448.00], // (22 in. by 34 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_E => [2448.00, 3168.00], // (34 in. by 44 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_DL_ENVELOPE => [311.81, 623.62], // (110 mm by 220 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C5_ENVELOPE => 'C5', // (162 mm by 229 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C3_ENVELOPE => 'C3', // (324 mm by 458 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C4_ENVELOPE => 'C4', // (229 mm by 324 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C6_ENVELOPE => 'C6', // (114 mm by 162 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_C65_ENVELOPE => [323.15, 649.13], // (114 mm by 229 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B4_ENVELOPE => 'B4', // (250 mm by 353 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B5_ENVELOPE => 'B5', // (176 mm by 250 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_B6_ENVELOPE => [498.90, 354.33], // (176 mm by 125 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ITALY_ENVELOPE => [311.81, 651.97], // (110 mm by 230 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_MONARCH_ENVELOPE => [279.00, 540.00], // (3.875 in. by 7.5 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_6_3_4_ENVELOPE => [261.00, 468.00], // (3.625 in. by 6.5 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_US_STANDARD_FANFOLD => [1071.00, 792.00], // (14.875 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD => [612.00, 864.00], // (8.5 in. by 12 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD => 'FOLIO', // (8.5 in. by 13 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B4 => 'B4', // (250 mm by 353 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD => [566.93, 419.53], // (200 mm by 148 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_1 => [648.00, 792.00], // (9 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_2 => [720.00, 792.00], // (10 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_STANDARD_PAPER_3 => [1080.00, 792.00], // (15 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_INVITE_ENVELOPE => [623.62, 623.62], // (220 mm by 220 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER => [667.80, 1080.00], // (9.275 in. by 15 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER => [841.68, 1296.00], // (11.69 in. by 18 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_EXTRA_PAPER => [668.98, 912.76], // (236 mm by 322 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER => [595.80, 792.00], // (8.275 in. by 11 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER => 'A4', // (210 mm by 297 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER => [667.80, 864.00], // (9.275 in. by 12 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER => [643.46, 1009.13], // (227 mm by 356 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER => [864.57, 1380.47], // (305 mm by 487 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER_PLUS_PAPER => [612.00, 913.68], // (8.5 in. by 12.69 in.) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4_PLUS_PAPER => [595.28, 935.43], // (210 mm by 330 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER => 'A5', // (148 mm by 210 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER => [515.91, 728.50], // (182 mm by 257 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A5_EXTRA_PAPER => [493.23, 666.14], // (174 mm by 235 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER => [569.76, 782.36], // (201 mm by 276 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A2_PAPER => 'A2', // (420 mm by 594 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER => 'A3', // (297 mm by 420 mm) + \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER => [912.76, 1261.42], // (322 mm by 445 mm) ]; /** * Create a new PDF Writer instance * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { parent::__construct($spreadsheet); $this->setUseInlineCss(true); - $this->tempDir = \PhpSpreadsheet\Shared\File::sysGetTempDir(); + $this->tempDir = \PhpOffice\PhpSpreadsheet\Shared\File::sysGetTempDir(); } /** @@ -189,7 +189,7 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML * @param string $pValue Paper size * @return self */ - public function setPaperSize($pValue = \PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER) + public function setPaperSize($pValue = \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_LETTER) { $this->paperSize = $pValue; @@ -212,7 +212,7 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML * @param string $pValue Page orientation * @return self */ - public function setOrientation($pValue = \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_DEFAULT) + public function setOrientation($pValue = \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_DEFAULT) { $this->orientation = $pValue; @@ -233,7 +233,7 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML * Set temporary storage directory * * @param string $pValue Temporary storage directory - * @throws \PhpSpreadsheet\Writer\Exception when directory does not exist + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception when directory does not exist * @return self */ public function setTempDir($pValue = '') @@ -241,7 +241,7 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML if (is_dir($pValue)) { $this->tempDir = $pValue; } else { - throw new \PhpSpreadsheet\Writer\Exception("Directory does not exist: $pValue"); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Directory does not exist: $pValue"); } return $this; @@ -251,20 +251,20 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML * Save Spreadsheet to PDF file, pre-save * * @param string $pFilename Name of the file to save as - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ protected function prepareForSave($pFilename = null) { // garbage collect $this->spreadsheet->garbageCollect(); - $this->saveArrayReturnType = \PhpSpreadsheet\Calculation::getArrayReturnType(); - \PhpSpreadsheet\Calculation::setArrayReturnType(\PhpSpreadsheet\Calculation::RETURN_ARRAY_AS_VALUE); + $this->saveArrayReturnType = \PhpOffice\PhpSpreadsheet\Calculation::getArrayReturnType(); + \PhpOffice\PhpSpreadsheet\Calculation::setArrayReturnType(\PhpOffice\PhpSpreadsheet\Calculation::RETURN_ARRAY_AS_VALUE); // Open file $fileHandle = fopen($pFilename, 'w'); if ($fileHandle === false) { - throw new \PhpSpreadsheet\Writer\Exception("Could not open file $pFilename for writing."); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception("Could not open file $pFilename for writing."); } // Set PDF @@ -279,13 +279,13 @@ abstract class Core extends \PhpSpreadsheet\Writer\HTML * Save PhpSpreadsheet to PDF file, post-save * * @param resource $fileHandle - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ protected function restoreStateAfterSave($fileHandle) { // Close file fclose($fileHandle); - \PhpSpreadsheet\Calculation::setArrayReturnType($this->saveArrayReturnType); + \PhpOffice\PhpSpreadsheet\Calculation::setArrayReturnType($this->saveArrayReturnType); } } diff --git a/src/PhpSpreadsheet/Writer/PDF/DomPDF.php b/src/PhpSpreadsheet/Writer/PDF/DomPDF.php index 23c03b76..4fdfabda 100644 --- a/src/PhpSpreadsheet/Writer/PDF/DomPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/DomPDF.php @@ -1,13 +1,13 @@ <?php -namespace PhpSpreadsheet\Writer\PDF; +namespace PhpOffice\PhpSpreadsheet\Writer\PDF; /* Require DomPDF library */ -$pdfRendererClassFile = \PhpSpreadsheet\Settings::getPdfRendererPath() . '/dompdf_config.inc.php'; +$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/dompdf_config.inc.php'; if (file_exists($pdfRendererClassFile)) { require_once $pdfRendererClassFile; } else { - throw new \PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library'); } /** @@ -32,14 +32,14 @@ if (file_exists($pdfRendererClassFile)) { * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class DomPDF extends Core implements \PhpSpreadsheet\Writer\IWriter +class DomPDF extends Core implements \PhpOffice\PhpSpreadsheet\Writer\IWriter { /** * Create a new DomPDF Writer instance * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { parent::__construct($spreadsheet); } @@ -48,7 +48,7 @@ class DomPDF extends Core implements \PhpSpreadsheet\Writer\IWriter * Save Spreadsheet to file * * @param string $pFilename Name of the file to save as - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { @@ -60,12 +60,12 @@ class DomPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation() - == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); $printMargins = $this->spreadsheet->getSheet(0)->getPageMargins(); } else { $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() - == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); $printMargins = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); } @@ -74,8 +74,8 @@ class DomPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Override Page Orientation if (!is_null($this->getOrientation())) { - $orientation = ($this->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_DEFAULT) - ? \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT + $orientation = ($this->getOrientation() == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_DEFAULT) + ? \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT : $this->getOrientation(); } // Override Paper Size diff --git a/src/PhpSpreadsheet/Writer/PDF/MPDF.php b/src/PhpSpreadsheet/Writer/PDF/MPDF.php index a7fbd337..38b63cc0 100644 --- a/src/PhpSpreadsheet/Writer/PDF/MPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/MPDF.php @@ -1,13 +1,13 @@ <?php -namespace PhpSpreadsheet\Writer\PDF; +namespace PhpOffice\PhpSpreadsheet\Writer\PDF; /* Require mPDF library */ -$pdfRendererClassFile = \PhpSpreadsheet\Settings::getPdfRendererPath() . '/mpdf.php'; +$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/mpdf.php'; if (file_exists($pdfRendererClassFile)) { require_once $pdfRendererClassFile; } else { - throw new \PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library'); } /** @@ -32,14 +32,14 @@ if (file_exists($pdfRendererClassFile)) { * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class MPDF extends Core implements \PhpSpreadsheet\Writer\IWriter +class MPDF extends Core implements \PhpOffice\PhpSpreadsheet\Writer\IWriter { /** * Create a mPDF Writer instance * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { parent::__construct($spreadsheet); } @@ -48,7 +48,7 @@ class MPDF extends Core implements \PhpSpreadsheet\Writer\IWriter * Save Spreadsheet to file * * @param string $pFilename Name of the file to save as - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { @@ -60,12 +60,12 @@ class MPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation() - == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); $printMargins = $this->spreadsheet->getSheet(0)->getPageMargins(); } else { $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() - == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); $printMargins = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); } @@ -73,8 +73,8 @@ class MPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Override Page Orientation if (!is_null($this->getOrientation())) { - $orientation = ($this->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_DEFAULT) - ? \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT + $orientation = ($this->getOrientation() == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_DEFAULT) + ? \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_PORTRAIT : $this->getOrientation(); } $orientation = strtoupper($orientation); diff --git a/src/PhpSpreadsheet/Writer/PDF/TcPDF.php b/src/PhpSpreadsheet/Writer/PDF/TcPDF.php index 84cf48f0..d3ea95f3 100644 --- a/src/PhpSpreadsheet/Writer/PDF/TcPDF.php +++ b/src/PhpSpreadsheet/Writer/PDF/TcPDF.php @@ -1,14 +1,14 @@ <?php -namespace PhpSpreadsheet\Writer\PDF; +namespace PhpOffice\PhpSpreadsheet\Writer\PDF; /* Require tcPDF library */ -$pdfRendererClassFile = \PhpSpreadsheet\Settings::getPdfRendererPath() . '/tcpdf.php'; +$pdfRendererClassFile = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath() . '/tcpdf.php'; if (file_exists($pdfRendererClassFile)) { - $k_path_url = \PhpSpreadsheet\Settings::getPdfRendererPath(); + $k_path_url = \PhpOffice\PhpSpreadsheet\Settings::getPdfRendererPath(); require_once $pdfRendererClassFile; } else { - throw new \PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library'); + throw new \PhpOffice\PhpSpreadsheet\Writer\Exception('Unable to load PDF Rendering library'); } /** @@ -33,14 +33,14 @@ if (file_exists($pdfRendererClassFile)) { * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL * @version ##VERSION##, ##DATE## */ -class TcPDF extends Core implements \PhpSpreadsheet\Writer\IWriter +class TcPDF extends Core implements \PhpOffice\PhpSpreadsheet\Writer\IWriter { /** * Create a new tcPDF Writer instance * - * @param \PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object + * @param \PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet Spreadsheet object */ - public function __construct(\PhpSpreadsheet\Spreadsheet $spreadsheet) + public function __construct(\PhpOffice\PhpSpreadsheet\Spreadsheet $spreadsheet) { parent::__construct($spreadsheet); } @@ -49,7 +49,7 @@ class TcPDF extends Core implements \PhpSpreadsheet\Writer\IWriter * Save Spreadsheet to file * * @param string $pFilename Name of the file to save as - * @throws \PhpSpreadsheet\Writer\Exception + * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ public function save($pFilename = null) { @@ -61,19 +61,19 @@ class TcPDF extends Core implements \PhpSpreadsheet\Writer\IWriter // Check for paper size and page orientation if (is_null($this->getSheetIndex())) { $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation() - == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize(); $printMargins = $this->spreadsheet->getSheet(0)->getPageMargins(); } else { $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation() - == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; + == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize(); $printMargins = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageMargins(); } // Override Page Orientation if (!is_null($this->getOrientation())) { - $orientation = ($this->getOrientation() == \PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) + $orientation = ($this->getOrientation() == \PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P'; } diff --git a/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php b/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php index 6c72d6f8..a7e8c3c8 100644 --- a/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/DateTimeTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation\DateTime; -use PhpSpreadsheet\Calculation\Functions; -use PhpSpreadsheet\Shared\Date; +use PhpOffice\PhpSpreadsheet\Calculation\DateTime; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Shared\Date; /** * Class DateTimeTest diff --git a/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php b/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php index ea03486d..e4ef63b9 100644 --- a/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php @@ -1,20 +1,20 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation\Engineering; -use PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation\Engineering; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; class EngineeringTest extends \PHPUnit_Framework_TestCase { /** - * @var \PhpSpreadsheetTests\Custom\ComplexAssert + * @var \PhpOffice\PhpSpreadsheetTests\Custom\ComplexAssert */ protected $complexAssert; public function setUp() { - $this->complexAssert = new \PhpSpreadsheetTests\Custom\ComplexAssert(); + $this->complexAssert = new \PhpOffice\PhpSpreadsheetTests\Custom\ComplexAssert(); Functions::setCompatibilityMode(Functions::COMPATIBILITY_EXCEL); } diff --git a/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php b/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php index 48c49b60..3390b1e1 100644 --- a/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/FinancialTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation\Financial; -use PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation\Financial; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; class FinancialTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php b/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php index 0e3da56d..960c9d0e 100644 --- a/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; class FunctionsTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Calculation/LogicalTest.php b/tests/PhpSpreadsheetTests/Calculation/LogicalTest.php index 295ccfb0..64481ebe 100644 --- a/tests/PhpSpreadsheetTests/Calculation/LogicalTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/LogicalTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation\Functions; -use PhpSpreadsheet\Calculation\Logical; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation\Logical; class LogicalTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php b/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php index 9bb6b53a..b72c2282 100644 --- a/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation\Functions; -use PhpSpreadsheet\Calculation\LookupRef; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation\LookupRef; /** * Class LookupRefTest diff --git a/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php b/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php index efc48f46..429b7d0c 100644 --- a/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/MathTrigTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation; -use PhpSpreadsheet\Calculation\Functions; -use PhpSpreadsheet\Calculation\MathTrig; +use PhpOffice\PhpSpreadsheet\Calculation; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation\MathTrig; class MathTrigTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php b/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php index 8b5d0218..1cdc32f6 100644 --- a/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Calculation; +namespace PhpOffice\PhpSpreadsheetTests\Calculation; -use PhpSpreadsheet\Calculation\Functions; -use PhpSpreadsheet\Calculation\TextData; -use PhpSpreadsheet\Shared\StringHelper; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation\TextData; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; class TextDataTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/CalculationTest.php b/tests/PhpSpreadsheetTests/CalculationTest.php index 424777fd..becee1da 100644 --- a/tests/PhpSpreadsheetTests/CalculationTest.php +++ b/tests/PhpSpreadsheetTests/CalculationTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests; +namespace PhpOffice\PhpSpreadsheetTests; -use PhpSpreadsheet\Calculation; -use PhpSpreadsheet\Calculation\Functions; +use PhpOffice\PhpSpreadsheet\Calculation; +use PhpOffice\PhpSpreadsheet\Calculation\Functions; class CalculationTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Cell/AdvancedValueBinderTest.php b/tests/PhpSpreadsheetTests/Cell/AdvancedValueBinderTest.php index 65309a8b..0eedb920 100644 --- a/tests/PhpSpreadsheetTests/Cell/AdvancedValueBinderTest.php +++ b/tests/PhpSpreadsheetTests/Cell/AdvancedValueBinderTest.php @@ -1,14 +1,14 @@ <?php -namespace PhpSpreadsheetTests\Cell; +namespace PhpOffice\PhpSpreadsheetTests\Cell; -use PhpSpreadsheet\CachedObjectStorage\Memory; -use PhpSpreadsheet\Cell; -use PhpSpreadsheet\Cell\AdvancedValueBinder; -use PhpSpreadsheet\Cell\DataType; -use PhpSpreadsheet\Shared\StringHelper; -use PhpSpreadsheet\Style\NumberFormat; -use PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\CachedObjectStorage\Memory; +use PhpOffice\PhpSpreadsheet\Cell; +use PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder; +use PhpOffice\PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; +use PhpOffice\PhpSpreadsheet\Style\NumberFormat; +use PhpOffice\PhpSpreadsheet\Worksheet; class AdvancedValueBinderTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php b/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php index 8fced6da..48f432dd 100644 --- a/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php +++ b/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Cell; +namespace PhpOffice\PhpSpreadsheetTests\Cell; -use PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Cell\DataType; class DataTypeTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php b/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php index c1cd9aae..3788c98d 100644 --- a/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php +++ b/tests/PhpSpreadsheetTests/Cell/DefaultValueBinderTest.php @@ -1,11 +1,11 @@ <?php -namespace PhpSpreadsheetTests\Cell; +namespace PhpOffice\PhpSpreadsheetTests\Cell; -use PhpSpreadsheet\Cell; -use PhpSpreadsheet\Cell\DataType; -use PhpSpreadsheet\Cell\DefaultValueBinder; -use PhpSpreadsheet\RichText; +use PhpOffice\PhpSpreadsheet\Cell; +use PhpOffice\PhpSpreadsheet\Cell\DataType; +use PhpOffice\PhpSpreadsheet\Cell\DefaultValueBinder; +use PhpOffice\PhpSpreadsheet\RichText; class DefaultValueBinderTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Cell/HyperlinkTest.php b/tests/PhpSpreadsheetTests/Cell/HyperlinkTest.php index eed06964..9f88e588 100644 --- a/tests/PhpSpreadsheetTests/Cell/HyperlinkTest.php +++ b/tests/PhpSpreadsheetTests/Cell/HyperlinkTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Cell; +namespace PhpOffice\PhpSpreadsheetTests\Cell; -use PhpSpreadsheet\Cell\Hyperlink; +use PhpOffice\PhpSpreadsheet\Cell\Hyperlink; class HyperlinkTest extends \PHPUnit_Framework_TestCase { @@ -78,7 +78,7 @@ class HyperlinkTest extends \PHPUnit_Framework_TestCase { $urlValue = 'http://www.phpexcel.net'; $tooltipValue = 'PhpSpreadsheet Web Site'; - $initialExpectedHash = '4c923947ffe2695a2e1750b7e1c6724e'; + $initialExpectedHash = '6f1d4cbf40034b9ddc3fbf6019506e91'; $testInstance = new Hyperlink($urlValue, $tooltipValue); diff --git a/tests/PhpSpreadsheetTests/CellTest.php b/tests/PhpSpreadsheetTests/CellTest.php index 995d2926..937d5dff 100644 --- a/tests/PhpSpreadsheetTests/CellTest.php +++ b/tests/PhpSpreadsheetTests/CellTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests; +namespace PhpOffice\PhpSpreadsheetTests; -use PhpSpreadsheet\Cell; -use PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Cell; +use PhpOffice\PhpSpreadsheet\Exception; class CellTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php b/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php index c94b5b92..7e87bfab 100644 --- a/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php +++ b/tests/PhpSpreadsheetTests/Chart/DataSeriesValuesTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Chart; +namespace PhpOffice\PhpSpreadsheetTests\Chart; -use PhpSpreadsheet\Chart\DataSeriesValues; -use PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues; +use PhpOffice\PhpSpreadsheet\Exception; class DataSeriesValuesTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Chart/LayoutTest.php b/tests/PhpSpreadsheetTests/Chart/LayoutTest.php index b03110b2..de8d3c9f 100644 --- a/tests/PhpSpreadsheetTests/Chart/LayoutTest.php +++ b/tests/PhpSpreadsheetTests/Chart/LayoutTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Chart; +namespace PhpOffice\PhpSpreadsheetTests\Chart; -use PhpSpreadsheet\Chart\Layout; +use PhpOffice\PhpSpreadsheet\Chart\Layout; class LayoutTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Chart/LegendTest.php b/tests/PhpSpreadsheetTests/Chart/LegendTest.php index 6123ce2b..e472fbfe 100644 --- a/tests/PhpSpreadsheetTests/Chart/LegendTest.php +++ b/tests/PhpSpreadsheetTests/Chart/LegendTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Chart; +namespace PhpOffice\PhpSpreadsheetTests\Chart; -use PhpSpreadsheet\Chart\Legend; +use PhpOffice\PhpSpreadsheet\Chart\Legend; class LegendTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Custom/Complex.php b/tests/PhpSpreadsheetTests/Custom/Complex.php index 90c25fe9..9406572d 100644 --- a/tests/PhpSpreadsheetTests/Custom/Complex.php +++ b/tests/PhpSpreadsheetTests/Custom/Complex.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Custom; +namespace PhpOffice\PhpSpreadsheetTests\Custom; -use PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Exception; class Complex { diff --git a/tests/PhpSpreadsheetTests/Custom/ComplexAssert.php b/tests/PhpSpreadsheetTests/Custom/ComplexAssert.php index 84fd6af5..828730e5 100644 --- a/tests/PhpSpreadsheetTests/Custom/ComplexAssert.php +++ b/tests/PhpSpreadsheetTests/Custom/ComplexAssert.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheetTests\Custom; +namespace PhpOffice\PhpSpreadsheetTests\Custom; class ComplexAssert { diff --git a/tests/PhpSpreadsheetTests/Reader/XEEValidatorTest.php b/tests/PhpSpreadsheetTests/Reader/XEEValidatorTest.php index c5fe46db..be2d1cae 100644 --- a/tests/PhpSpreadsheetTests/Reader/XEEValidatorTest.php +++ b/tests/PhpSpreadsheetTests/Reader/XEEValidatorTest.php @@ -1,14 +1,14 @@ <?php -namespace PhpSpreadsheetTests\Reader; +namespace PhpOffice\PhpSpreadsheetTests\Reader; -use PhpSpreadsheet\Reader\BaseReader; +use PhpOffice\PhpSpreadsheet\Reader\BaseReader; class XEEValidatorTest extends \PHPUnit_Framework_TestCase { /** * @dataProvider providerInvalidXML - * @expectedException \PhpSpreadsheet\Reader\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Reader\Exception */ public function testInvalidXML($filename) { diff --git a/tests/PhpSpreadsheetTests/ReferenceHelperTest.php b/tests/PhpSpreadsheetTests/ReferenceHelperTest.php index f31c1564..ecbcd081 100644 --- a/tests/PhpSpreadsheetTests/ReferenceHelperTest.php +++ b/tests/PhpSpreadsheetTests/ReferenceHelperTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests; +namespace PhpOffice\PhpSpreadsheetTests; -use PhpSpreadsheet\ReferenceHelper; +use PhpOffice\PhpSpreadsheet\ReferenceHelper; class ReferenceHelperTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/SampleTest.php b/tests/PhpSpreadsheetTests/SampleTest.php index 97c5062e..1c35fa87 100644 --- a/tests/PhpSpreadsheetTests/SampleTest.php +++ b/tests/PhpSpreadsheetTests/SampleTest.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheetTests; +namespace PhpOffice\PhpSpreadsheetTests; class SampleTest extends \PHPUnit_Framework_TestCase { @@ -22,10 +22,10 @@ class SampleTest extends \PHPUnit_Framework_TestCase { $skipped = [ '07 Reader PCLZip', // Excel2007 cannot load file, leading to OpenOffice trying to and crashing. This is a bug that should be fixed - '20 Read OOCalc with PCLZip', // Crash: Call to undefined method PhpSpreadsheet\Shared\ZipArchive::statName() + '20 Read OOCalc with PCLZip', // Crash: Call to undefined method \PhpOffice\PhpSpreadsheet\Shared\ZipArchive::statName() '21 Pdf', // for now we don't have 3rdparty libs to tests PDF, but it should be added ]; - $helper = new \PhpSpreadsheet\Helper\Sample(); + $helper = new \PhpOffice\PhpSpreadsheet\Helper\Sample(); $samples = []; foreach ($helper->getSamples() as $name => $sample) { if (!in_array($name, $skipped)) { diff --git a/tests/PhpSpreadsheetTests/SettingsTest.php b/tests/PhpSpreadsheetTests/SettingsTest.php index 4712f206..c35c63d4 100644 --- a/tests/PhpSpreadsheetTests/SettingsTest.php +++ b/tests/PhpSpreadsheetTests/SettingsTest.php @@ -1,6 +1,6 @@ <?php -namespace PhpSpreadsheetTests; +namespace PhpOffice\PhpSpreadsheetTests; class SettingsTest extends \PHPUnit_Framework_TestCase { @@ -12,7 +12,7 @@ class SettingsTest extends \PHPUnit_Framework_TestCase */ public function testGetXMLSettings() { - $result = \PhpSpreadsheet\Settings::getLibXmlLoaderOptions(); + $result = \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions(); $this->assertTrue((bool) ((LIBXML_DTDLOAD | LIBXML_DTDATTR) & $result)); } @@ -20,8 +20,8 @@ class SettingsTest extends \PHPUnit_Framework_TestCase */ public function testSetXMLSettings() { - call_user_func_array([\PhpSpreadsheet\Settings::class, 'setLibXmlLoaderOptions'], [LIBXML_DTDLOAD | LIBXML_DTDATTR | LIBXML_DTDVALID]); - $result = \PhpSpreadsheet\Settings::getLibXmlLoaderOptions(); + call_user_func_array([\PhpOffice\PhpSpreadsheet\Settings::class, 'setLibXmlLoaderOptions'], [LIBXML_DTDLOAD | LIBXML_DTDATTR | LIBXML_DTDVALID]); + $result = \PhpOffice\PhpSpreadsheet\Settings::getLibXmlLoaderOptions(); $this->assertTrue((bool) ((LIBXML_DTDLOAD | LIBXML_DTDATTR | LIBXML_DTDVALID) & $result)); } } diff --git a/tests/PhpSpreadsheetTests/Shared/CodePageTest.php b/tests/PhpSpreadsheetTests/Shared/CodePageTest.php index 7376a97c..7598e655 100644 --- a/tests/PhpSpreadsheetTests/Shared/CodePageTest.php +++ b/tests/PhpSpreadsheetTests/Shared/CodePageTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Shared; +namespace PhpOffice\PhpSpreadsheetTests\Shared; -use PhpSpreadsheet\Exception; -use PhpSpreadsheet\Shared\CodePage; +use PhpOffice\PhpSpreadsheet\Exception; +use PhpOffice\PhpSpreadsheet\Shared\CodePage; class CodePageTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Shared/DateTest.php b/tests/PhpSpreadsheetTests/Shared/DateTest.php index 6b8f5741..9630460d 100644 --- a/tests/PhpSpreadsheetTests/Shared/DateTest.php +++ b/tests/PhpSpreadsheetTests/Shared/DateTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Shared; +namespace PhpOffice\PhpSpreadsheetTests\Shared; -use PhpSpreadsheet\Shared\Date; +use PhpOffice\PhpSpreadsheet\Shared\Date; class DateTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Shared/FileTest.php b/tests/PhpSpreadsheetTests/Shared/FileTest.php index cc05a6f6..eb802a0f 100644 --- a/tests/PhpSpreadsheetTests/Shared/FileTest.php +++ b/tests/PhpSpreadsheetTests/Shared/FileTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Shared; +namespace PhpOffice\PhpSpreadsheetTests\Shared; -use PhpSpreadsheet\Shared\File; +use PhpOffice\PhpSpreadsheet\Shared\File; class FileTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Shared/FontTest.php b/tests/PhpSpreadsheetTests/Shared/FontTest.php index e50a3f15..161bc15a 100644 --- a/tests/PhpSpreadsheetTests/Shared/FontTest.php +++ b/tests/PhpSpreadsheetTests/Shared/FontTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Shared; +namespace PhpOffice\PhpSpreadsheetTests\Shared; -use PhpSpreadsheet\Shared\Font; +use PhpOffice\PhpSpreadsheet\Shared\Font; class FontTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Shared/PasswordHasherTest.php b/tests/PhpSpreadsheetTests/Shared/PasswordHasherTest.php index 7f4bab3a..899cb8bf 100644 --- a/tests/PhpSpreadsheetTests/Shared/PasswordHasherTest.php +++ b/tests/PhpSpreadsheetTests/Shared/PasswordHasherTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Shared; +namespace PhpOffice\PhpSpreadsheetTests\Shared; -use PhpSpreadsheet\Shared\PasswordHasher; +use PhpOffice\PhpSpreadsheet\Shared\PasswordHasher; class PasswordHasherTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Shared/StringTest.php b/tests/PhpSpreadsheetTests/Shared/StringTest.php index 4fe28bc1..c9b46777 100644 --- a/tests/PhpSpreadsheetTests/Shared/StringTest.php +++ b/tests/PhpSpreadsheetTests/Shared/StringTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Shared; +namespace PhpOffice\PhpSpreadsheetTests\Shared; -use PhpSpreadsheet\Shared\StringHelper; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; class StringTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php b/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php index 5483e730..58f791d1 100644 --- a/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php +++ b/tests/PhpSpreadsheetTests/Shared/TimeZoneTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Shared; +namespace PhpOffice\PhpSpreadsheetTests\Shared; -use PhpSpreadsheet\Shared\TimeZone; +use PhpOffice\PhpSpreadsheet\Shared\TimeZone; class TimeZoneTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Style/ColorTest.php b/tests/PhpSpreadsheetTests/Style/ColorTest.php index 4522c59b..ff95983c 100644 --- a/tests/PhpSpreadsheetTests/Style/ColorTest.php +++ b/tests/PhpSpreadsheetTests/Style/ColorTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Style; +namespace PhpOffice\PhpSpreadsheetTests\Style; -use PhpSpreadsheet\Style\Color; +use PhpOffice\PhpSpreadsheet\Style\Color; class ColorTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormatDateTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormatDateTest.php index 883f1f57..4ec64901 100644 --- a/tests/PhpSpreadsheetTests/Style/NumberFormatDateTest.php +++ b/tests/PhpSpreadsheetTests/Style/NumberFormatDateTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Style; +namespace PhpOffice\PhpSpreadsheetTests\Style; -use PhpSpreadsheet\Shared\StringHelper; -use PhpSpreadsheet\Style\NumberFormat; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; +use PhpOffice\PhpSpreadsheet\Style\NumberFormat; class NumberFormatDateTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormatTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormatTest.php index e393bac2..05f6128f 100644 --- a/tests/PhpSpreadsheetTests/Style/NumberFormatTest.php +++ b/tests/PhpSpreadsheetTests/Style/NumberFormatTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Style; +namespace PhpOffice\PhpSpreadsheetTests\Style; -use PhpSpreadsheet\Shared\StringHelper; -use PhpSpreadsheet\Style\NumberFormat; +use PhpOffice\PhpSpreadsheet\Shared\StringHelper; +use PhpOffice\PhpSpreadsheet\Style\NumberFormat; class NumberFormatTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/Column/RuleTest.php b/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/Column/RuleTest.php index 451b2c0a..e1e2d0a7 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/Column/RuleTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/Column/RuleTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Worksheet\AutoFilter\Column; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet\AutoFilter\Column; -use PhpSpreadsheet\Worksheet\AutoFilter\Column; +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column; class RuleTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php b/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php index e3540b77..080f1bf8 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php @@ -1,8 +1,8 @@ <?php -namespace PhpSpreadsheetTests\Worksheet\AutoFilter; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet\AutoFilter; -use PhpSpreadsheet\Worksheet\AutoFilter; +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter; class ColumnTest extends \PHPUnit_Framework_TestCase { @@ -75,7 +75,7 @@ class ColumnTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSetInvalidFilterTypeThrowsException() { @@ -100,7 +100,7 @@ class ColumnTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSetInvalidJoinThrowsException() { diff --git a/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php b/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php index 616ebce9..e00d11ed 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php @@ -1,11 +1,11 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\CachedObjectStorage\Memory; -use PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Worksheet\AutoFilter; -use PhpSpreadsheet\Worksheet\AutoFilter\Column; +use PhpOffice\PhpSpreadsheet\CachedObjectStorage\Memory; +use PhpOffice\PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter; +use PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column; class AutoFilterTest extends \PHPUnit_Framework_TestCase { @@ -98,7 +98,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSetRangeInvalidRange() { @@ -132,7 +132,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testGetInvalidColumnOffset() { @@ -150,7 +150,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase $this->assertInstanceOf(AutoFilter::class, $result); $result = $this->testAutoFilterObject->getColumns(); - // Result should be an array of \PhpSpreadsheet\Worksheet\AutoFilter\Column + // Result should be an array of \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column // objects for each column we set indexed by the column ID $this->assertInternalType('array', $result); $this->assertEquals(1, count($result)); @@ -159,7 +159,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSetInvalidColumnWithString() { @@ -178,7 +178,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase $this->assertInstanceOf(AutoFilter::class, $result); $result = $this->testAutoFilterObject->getColumns(); - // Result should be an array of \PhpSpreadsheet\Worksheet\AutoFilter\Column + // Result should be an array of \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column // objects for each column we set indexed by the column ID $this->assertInternalType('array', $result); $this->assertEquals(1, count($result)); @@ -187,7 +187,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSetInvalidColumnWithObject() { @@ -198,7 +198,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSetColumnWithInvalidDataType() { @@ -217,7 +217,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase } $result = $this->testAutoFilterObject->getColumns(); - // Result should be an array of \PhpSpreadsheet\Worksheet\AutoFilter\Column + // Result should be an array of \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column // objects for each column we set indexed by the column ID $this->assertInternalType('array', $result); $this->assertEquals(count($columnIndexes), count($result)); @@ -236,7 +236,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase } // If we request a specific column by its column ID, we should - // get a \PhpSpreadsheet\Worksheet\AutoFilter\Column object returned + // get a \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column object returned foreach ($columnIndexes as $columnIndex) { $result = $this->testAutoFilterObject->getColumn($columnIndex); $this->assertInstanceOf(Column::class, $result); @@ -252,7 +252,7 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase ]; // If we request a specific column by its offset, we should - // get a \PhpSpreadsheet\Worksheet\AutoFilter\Column object returned + // get a \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column object returned foreach ($columnIndexes as $columnIndex => $columnID) { $result = $this->testAutoFilterObject->getColumnByOffset($columnIndex); $this->assertInstanceOf(Column::class, $result); @@ -263,13 +263,13 @@ class AutoFilterTest extends \PHPUnit_Framework_TestCase public function testGetColumnIfNotSet() { // If we request a specific column by its column ID, we should - // get a \PhpSpreadsheet\Worksheet\AutoFilter\Column object returned + // get a \PhpOffice\PhpSpreadsheet\Worksheet\AutoFilter\Column object returned $result = $this->testAutoFilterObject->getColumn('K'); $this->assertInstanceOf(Column::class, $result); } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testGetColumnWithoutRangeSet() { diff --git a/tests/PhpSpreadsheetTests/Worksheet/CellCollectionTest.php b/tests/PhpSpreadsheetTests/Worksheet/CellCollectionTest.php index 935533f2..164c0ea8 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/CellCollectionTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/CellCollectionTest.php @@ -1,9 +1,9 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\CachedObjectStorageFactory; -use PhpSpreadsheet\Spreadsheet; +use PhpOffice\PhpSpreadsheet\CachedObjectStorageFactory; +use PhpOffice\PhpSpreadsheet\Spreadsheet; class CellCollectionTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Worksheet/ColumnCellIteratorTest.php b/tests/PhpSpreadsheetTests/Worksheet/ColumnCellIteratorTest.php index 24f2a49b..062897c1 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/ColumnCellIteratorTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/ColumnCellIteratorTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\Cell; -use PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Worksheet\ColumnCellIterator; +use PhpOffice\PhpSpreadsheet\Cell; +use PhpOffice\PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\ColumnCellIterator; class ColumnCellIteratorTest extends \PHPUnit_Framework_TestCase { @@ -67,7 +67,7 @@ class ColumnCellIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSeekOutOfRange() { @@ -76,7 +76,7 @@ class ColumnCellIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testPrevOutOfRange() { diff --git a/tests/PhpSpreadsheetTests/Worksheet/ColumnIteratorTest.php b/tests/PhpSpreadsheetTests/Worksheet/ColumnIteratorTest.php index aa733b45..9792175b 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/ColumnIteratorTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/ColumnIteratorTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Worksheet\Column; -use PhpSpreadsheet\Worksheet\ColumnIterator; +use PhpOffice\PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Column; +use PhpOffice\PhpSpreadsheet\Worksheet\ColumnIterator; class ColumnIteratorTest extends \PHPUnit_Framework_TestCase { @@ -69,7 +69,7 @@ class ColumnIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSeekOutOfRange() { @@ -78,7 +78,7 @@ class ColumnIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testPrevOutOfRange() { diff --git a/tests/PhpSpreadsheetTests/Worksheet/RowCellIteratorTest.php b/tests/PhpSpreadsheetTests/Worksheet/RowCellIteratorTest.php index c1420352..e5f1fea5 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/RowCellIteratorTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/RowCellIteratorTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\Cell; -use PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Worksheet\RowCellIterator; +use PhpOffice\PhpSpreadsheet\Cell; +use PhpOffice\PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\RowCellIterator; class RowCellIteratorTest extends \PHPUnit_Framework_TestCase { @@ -69,7 +69,7 @@ class RowCellIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSeekOutOfRange() { @@ -78,7 +78,7 @@ class RowCellIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testPrevOutOfRange() { diff --git a/tests/PhpSpreadsheetTests/Worksheet/RowIteratorTest.php b/tests/PhpSpreadsheetTests/Worksheet/RowIteratorTest.php index 154cd186..0baf8971 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/RowIteratorTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/RowIteratorTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Worksheet\Row; -use PhpSpreadsheet\Worksheet\RowIterator; +use PhpOffice\PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Row; +use PhpOffice\PhpSpreadsheet\Worksheet\RowIterator; class RowIteratorTest extends \PHPUnit_Framework_TestCase { @@ -67,7 +67,7 @@ class RowIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testSeekOutOfRange() { @@ -76,7 +76,7 @@ class RowIteratorTest extends \PHPUnit_Framework_TestCase } /** - * @expectedException \PhpSpreadsheet\Exception + * @expectedException \PhpOffice\PhpSpreadsheet\Exception */ public function testPrevOutOfRange() { diff --git a/tests/PhpSpreadsheetTests/Worksheet/WorksheetColumnTest.php b/tests/PhpSpreadsheetTests/Worksheet/WorksheetColumnTest.php index 1549c32c..2f54c6c5 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/WorksheetColumnTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/WorksheetColumnTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Worksheet\Column; -use PhpSpreadsheet\Worksheet\ColumnCellIterator; +use PhpOffice\PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Column; +use PhpOffice\PhpSpreadsheet\Worksheet\ColumnCellIterator; class WorksheetColumnTest extends \PHPUnit_Framework_TestCase { diff --git a/tests/PhpSpreadsheetTests/Worksheet/WorksheetRowTest.php b/tests/PhpSpreadsheetTests/Worksheet/WorksheetRowTest.php index 9bb0691d..1ee2e856 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/WorksheetRowTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/WorksheetRowTest.php @@ -1,10 +1,10 @@ <?php -namespace PhpSpreadsheetTests\Worksheet; +namespace PhpOffice\PhpSpreadsheetTests\Worksheet; -use PhpSpreadsheet\Worksheet; -use PhpSpreadsheet\Worksheet\Row; -use PhpSpreadsheet\Worksheet\RowCellIterator; +use PhpOffice\PhpSpreadsheet\Worksheet; +use PhpOffice\PhpSpreadsheet\Worksheet\Row; +use PhpOffice\PhpSpreadsheet\Worksheet\RowCellIterator; class WorksheetRowTest extends \PHPUnit_Framework_TestCase { From cfa1feffedab7eb974c61e397dd63daeba9c8557 Mon Sep 17 00:00:00 2001 From: Adrien Crivelli <adrien.crivelli@gmail.com> Date: Thu, 1 Sep 2016 02:22:19 +0900 Subject: [PATCH 29/29] Attempt to show samples output so Travis don't interrupt tests --- tests/PhpSpreadsheetTests/SampleTest.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/PhpSpreadsheetTests/SampleTest.php b/tests/PhpSpreadsheetTests/SampleTest.php index 1c35fa87..cd63b18f 100644 --- a/tests/PhpSpreadsheetTests/SampleTest.php +++ b/tests/PhpSpreadsheetTests/SampleTest.php @@ -11,10 +11,6 @@ class SampleTest extends \PHPUnit_Framework_TestCase */ public function testSample($sample) { - // Suppress output to console - $this->setOutputCallback(function () { - }); - require $sample; }