summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/queryevaluator.hxx16
-rw-r--r--sc/inc/queryiter.hxx10
-rw-r--r--sc/inc/rangecache.hxx26
-rw-r--r--sc/qa/unit/data/functions/statistical/fods/countif.fods191
-rw-r--r--sc/qa/unit/data/functions/statistical/fods/countif2.fods3157
-rw-r--r--sc/source/core/data/queryevaluator.cxx57
-rw-r--r--sc/source/core/data/queryiter.cxx37
-rw-r--r--sc/source/core/tool/interpr1.cxx8
-rw-r--r--sc/source/core/tool/rangecache.cxx69
9 files changed, 3411 insertions, 160 deletions
diff --git a/sc/inc/queryevaluator.hxx b/sc/inc/queryevaluator.hxx
index 13e3f6ae93c8..f5724083444d 100644
--- a/sc/inc/queryevaluator.hxx
+++ b/sc/inc/queryevaluator.hxx
@@ -72,10 +72,10 @@ class ScQueryEvaluator
std::vector<std::vector<double>> mCachedSortedItemValues;
std::vector<std::vector<const rtl_uString*>> mCachedSortedItemStrings;
- static bool isPartialTextMatchOp(const ScQueryEntry& rEntry);
- static bool isTextMatchOp(const ScQueryEntry& rEntry);
- static bool isMatchWholeCellHelper(bool docMatchWholeCell, const ScQueryEntry& rEntry);
- bool isMatchWholeCell(const ScQueryEntry& rEntry) const;
+ static bool isPartialTextMatchOp(ScQueryOp eOp);
+ static bool isTextMatchOp(ScQueryOp eOp);
+ static bool isMatchWholeCellHelper(bool docMatchWholeCell, ScQueryOp eOp);
+ bool isMatchWholeCell(ScQueryOp eOp) const;
void setupTransliteratorIfNeeded();
void setupCollatorIfNeeded();
@@ -114,13 +114,13 @@ public:
bool ValidQuery(SCROW nRow, const ScRefCellValue* pCell = nullptr,
sc::TableColumnBlockPositionSet* pBlockPos = nullptr);
- static bool isQueryByValue(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem,
+ static bool isQueryByValue(ScQueryOp eOp, ScQueryEntry::QueryType eType,
const ScRefCellValue& rCell);
- static bool isQueryByString(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem,
+ static bool isQueryByString(ScQueryOp eOp, ScQueryEntry::QueryType eType,
const ScRefCellValue& rCell);
- OUString getCellString(const ScRefCellValue& rCell, SCROW nRow, const ScQueryEntry& rEntry,
+ OUString getCellString(const ScRefCellValue& rCell, SCROW nRow, SCCOL nCol,
const svl::SharedString** sharedString);
- static bool isMatchWholeCell(const ScDocument& rDoc, const ScQueryEntry& rEntry);
+ static bool isMatchWholeCell(const ScDocument& rDoc, ScQueryOp eOp);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/inc/queryiter.hxx b/sc/inc/queryiter.hxx
index fa8f08083981..1d0066de7fb8 100644
--- a/sc/inc/queryiter.hxx
+++ b/sc/inc/queryiter.hxx
@@ -323,8 +323,9 @@ public:
SCTAB nTable, const ScQueryParam& aParam, bool bMod)
: Base( rDocument, rContext, nTable, aParam, bMod ) {}
// Returns true if this iterator can be used for the given query.
- static bool CanBeUsed(const ScDocument& rDoc, const ScQueryParam& aParam,
- const ScFormulaCell* cell, const ScComplexRefData* refData);
+ static bool CanBeUsed(ScDocument& rDoc, const ScQueryParam& aParam,
+ SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData,
+ ScInterpreterContext& context);
};
@@ -372,8 +373,9 @@ public:
SCTAB nTable, const ScQueryParam& aParam, bool bMod)
: Base( rDocument, rContext, nTable, aParam, bMod ) {}
// Returns true if this iterator can be used for the given query.
- static bool CanBeUsed(const ScDocument& rDoc, const ScQueryParam& aParam,
- const ScFormulaCell* cell, const ScComplexRefData* refData);
+ static bool CanBeUsed(ScDocument& rDoc, const ScQueryParam& aParam,
+ SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData,
+ ScInterpreterContext& context);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/inc/rangecache.hxx b/sc/inc/rangecache.hxx
index 048d9b9ba046..7490a570f20a 100644
--- a/sc/inc/rangecache.hxx
+++ b/sc/inc/rangecache.hxx
@@ -20,6 +20,7 @@
#pragma once
#include "address.hxx"
+#include "queryentry.hxx"
#include <o3tl/hash_combine.hxx>
#include <svl/listener.hxx>
@@ -47,11 +48,13 @@ public:
ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange, const ScQueryParam& param,
ScInterpreterContext* context);
+ /// Returns if the cache is usable.
+ bool isValid() const { return mValid; }
+
/// Remove from document structure and delete (!) cache on modify hint.
virtual void Notify(const SfxHint& rHint) override;
const ScRange& getRange() const { return maRange; }
- bool isDescending() const { return mDescending; }
enum class ValueType
{
@@ -62,14 +65,16 @@ public:
struct HashKey
{
ScRange range;
- bool descending;
- ValueType type;
+ ValueType valueType;
+ ScQueryOp queryOp;
+ ScQueryEntry::QueryType queryType;
bool operator==(const HashKey& other) const
{
- return range == other.range && descending == other.descending && type == other.type;
+ return range == other.range && valueType == other.valueType && queryOp == other.queryOp
+ && queryType == other.queryType;
}
};
- HashKey getHashKey() const { return { maRange, mDescending, mValues }; }
+ HashKey getHashKey() const { return { maRange, mValueType, mQueryOp, mQueryType }; }
static HashKey makeHashKey(const ScRange& range, const ScQueryParam& param);
struct Hash
@@ -78,8 +83,9 @@ public:
{
// Range should be just one column.
size_t hash = key.range.hashStartColumn();
- o3tl::hash_combine(hash, key.descending);
- o3tl::hash_combine(hash, key.type);
+ o3tl::hash_combine(hash, key.valueType);
+ o3tl::hash_combine(hash, key.queryOp);
+ o3tl::hash_combine(hash, key.queryType);
return hash;
}
};
@@ -100,8 +106,10 @@ private:
std::vector<size_t> mRowToIndex; // indexed by 'SCROW - maRange.aStart.Row()'
ScRange maRange;
ScDocument* mpDoc;
- bool mDescending;
- ValueType mValues;
+ bool mValid;
+ ValueType mValueType;
+ ScQueryOp mQueryOp;
+ ScQueryEntry::QueryType mQueryType;
ScSortedRangeCache(const ScSortedRangeCache&) = delete;
ScSortedRangeCache& operator=(const ScSortedRangeCache&) = delete;
diff --git a/sc/qa/unit/data/functions/statistical/fods/countif.fods b/sc/qa/unit/data/functions/statistical/fods/countif.fods
index 41ee8f439791..e144a049d059 100644
--- a/sc/qa/unit/data/functions/statistical/fods/countif.fods
+++ b/sc/qa/unit/data/functions/statistical/fods/countif.fods
@@ -3726,7 +3726,7 @@
<table:table-cell office:value-type="float" office:value="12" calcext:value-type="float">
<text:p>12</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A32];12)=ROUND([.B32];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A32];12)=ROUND([.B32];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>PRAVDA</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A32])" office:value-type="string" office:string-value="=COUNTIF(P20:R23;&quot;&quot;)" calcext:value-type="string">
@@ -3755,7 +3755,7 @@
<table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
<text:p>2</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A33];12)=ROUND([.B33];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A33];12)=ROUND([.B33];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>PRAVDA</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A33])" office:value-type="string" office:string-value="=COUNTIF(N33:N35;&quot;&lt;&gt;7&quot;)" calcext:value-type="string">
@@ -3784,7 +3784,7 @@
<table:table-cell office:value-type="float" office:value="9" calcext:value-type="float">
<text:p>9</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A34];12)=ROUND([.B34];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A34];12)=ROUND([.B34];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A34])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;.*&quot;)" calcext:value-type="string">
@@ -3815,7 +3815,7 @@
<table:table-cell office:value-type="float" office:value="5" calcext:value-type="float">
<text:p>5</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A35];12)=ROUND([.B35];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A35];12)=ROUND([.B35];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A35])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;abc&quot;)" calcext:value-type="string">
@@ -3846,7 +3846,7 @@
<table:table-cell office:value-type="float" office:value="5" calcext:value-type="float">
<text:p>5</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A36];12)=ROUND([.B36];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A36];12)=ROUND([.B36];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A36])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;ABC&quot;)" calcext:value-type="string">
@@ -3866,7 +3866,7 @@
<table:table-cell office:value-type="float" office:value="4" calcext:value-type="float">
<text:p>4</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A37];12)=ROUND([.B37];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A37];12)=ROUND([.B37];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A37])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;a&quot;)" calcext:value-type="string">
@@ -3886,7 +3886,7 @@
<table:table-cell office:value-type="float" office:value="4" calcext:value-type="float">
<text:p>4</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A38];12)=ROUND([.B38];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A38];12)=ROUND([.B38];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A38])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;A&quot;)" calcext:value-type="string">
@@ -3906,7 +3906,7 @@
<table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
<text:p>1</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A39];12)=ROUND([.B39];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A39];12)=ROUND([.B39];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A39])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;(?-i)abc&quot;)" calcext:value-type="string">
@@ -3926,7 +3926,7 @@
<table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
<text:p>2</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A40];12)=ROUND([.B40];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A40];12)=ROUND([.B40];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A40])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;(?-i)Abc&quot;)" calcext:value-type="string">
@@ -3946,7 +3946,7 @@
<table:table-cell office:value-type="float" office:value="3" calcext:value-type="float">
<text:p>3</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A41];12)=ROUND([.B41];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A41];12)=ROUND([.B41];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A41])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;(?-i)A&quot;)" calcext:value-type="string">
@@ -3966,7 +3966,7 @@
<table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
<text:p>2</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A42];12)=ROUND([.B42];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A42];12)=ROUND([.B42];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A42])" office:value-type="string" office:string-value="=COUNTIF($Q$3:$Q$11;&quot;a(?-i)B(?i)c&quot;)" calcext:value-type="string">
@@ -3986,7 +3986,7 @@
<table:table-cell office:value-type="float" office:value="0" calcext:value-type="float">
<text:p>0</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A43];12)=ROUND([.B43];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A43];12)=ROUND([.B43];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce34" table:formula="of:=FORMULA([.A43])" office:value-type="string" office:string-value="=COUNTIF(BM5:BM9,0)" calcext:value-type="string">
@@ -4006,7 +4006,7 @@
<table:table-cell office:value-type="float" office:value="3" calcext:value-type="float">
<text:p>3</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A44];12)=ROUND([.B44];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A44];12)=ROUND([.B44];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:formula="of:=FORMULA([.A44])" office:value-type="string" office:string-value="=COUNTIF(I44:L44;&quot;=&quot;)" calcext:value-type="string">
@@ -4030,7 +4030,7 @@
<table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
<text:p>1</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A45];12)=ROUND([.B45];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A45];12)=ROUND([.B45];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:formula="of:=FORMULA([.A45])" office:value-type="string" office:string-value="=COUNTIF(I45:L45;&quot;&lt;&gt;&quot;)" calcext:value-type="string">
@@ -4054,7 +4054,7 @@
<table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
<text:p>1</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A46];12)=ROUND([.B46];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A46];12)=ROUND([.B46];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:formula="of:=FORMULA([.A46])" office:value-type="string" office:string-value="=COUNTIF(I46:L46;&quot;&lt;&gt;&quot;)" calcext:value-type="string">
@@ -4078,7 +4078,7 @@
<table:table-cell office:value-type="float" office:value="0" calcext:value-type="float">
<text:p>0</text:p>
</table:table-cell>
- <table:table-cell table:style-name="ce65" table:formula="of:=ROUND([.A47];12)=ROUND([.B47];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A47];12)=ROUND([.B47];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
<text:p>TRUE</text:p>
</table:table-cell>
<table:table-cell table:formula="of:=FORMULA([.A47])" office:value-type="string" office:string-value="=COUNTIF(I47:L47;&quot;&lt;&gt;&quot;)" calcext:value-type="string">
@@ -4096,75 +4096,122 @@
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="ro2">
- <table:table-cell/>
- <table:table-cell table:style-name="ce23"/>
- <table:table-cell table:style-name="ce64"/>
- <table:table-cell table:style-name="ce34"/>
+ <table:table-cell table:formula="of:=COUNTIF([.J48:.J51];&quot;&gt;2&quot;)" office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A48];12)=ROUND([.B48];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A48])" office:value-type="string" office:string-value="=COUNTIF(J48:J51,&quot;&gt;2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(J48:J51,&quot;&gt;2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
<table:table-cell table:number-columns-repeated="4"/>
- <table:table-cell table:style-name="ce20"/>
- <table:table-cell table:number-columns-repeated="16"/>
- <table:table-cell table:style-name="ce56"/>
- <table:table-cell table:style-name="ce58"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>A2</text:p>
+ </table:table-cell>
</table:table-row>
<table:table-row table:style-name="ro2">
- <table:table-cell/>
- <table:table-cell table:style-name="ce23"/>
- <table:table-cell table:style-name="ce64"/>
- <table:table-cell table:style-name="ce34"/>
+ <table:table-cell table:formula="of:=COUNTIF([.J48:.J51];&quot;=2&quot;)" office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A49];12)=ROUND([.B49];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A49])" office:value-type="string" office:string-value="=COUNTIF(J48:J51,&quot;=2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(J48:J51,&quot;=2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
<table:table-cell table:number-columns-repeated="3"/>
- <table:table-cell table:style-name="ce24"/>
- <table:table-cell table:style-name="ce20"/>
- <table:table-cell table:number-columns-repeated="16"/>
- <table:table-cell table:style-name="ce56"/>
- <table:table-cell table:style-name="ce58"/>
+ <table:table-cell office:value-type="float" office:value="5" calcext:value-type="float">
+ <text:p>5</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
</table:table-row>
<table:table-row table:style-name="ro2">
- <table:table-cell/>
- <table:table-cell table:style-name="ce23"/>
- <table:table-cell table:style-name="ce64"/>
- <table:table-cell table:style-name="ce34"/>
- <table:table-cell table:number-columns-repeated="2"/>
- <table:table-cell table:style-name="ce40"/>
- <table:table-cell/>
- <table:table-cell table:style-name="ce20"/>
- <table:table-cell table:number-columns-repeated="16"/>
- <table:table-cell table:style-name="ce56"/>
- <table:table-cell table:style-name="ce58"/>
- </table:table-row>
- <table:table-row table:style-name="ro2" table:number-rows-repeated="4">
- <table:table-cell/>
- <table:table-cell table:style-name="ce23"/>
- <table:table-cell table:style-name="ce64"/>
- <table:table-cell table:style-name="ce34"/>
+ <table:table-cell table:formula="of:=COUNTIF([.J48:.J51];&quot;&lt;2&quot;)" office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A50];12)=ROUND([.B50];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A50])" office:value-type="string" office:string-value="=COUNTIF(J48:J51,&quot;&lt;2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(J48:J51,&quot;&lt;2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
<table:table-cell table:number-columns-repeated="3"/>
- <table:table-cell table:style-name="ce42"/>
- <table:table-cell table:style-name="ce20"/>
- <table:table-cell table:number-columns-repeated="16"/>
- <table:table-cell table:style-name="ce56"/>
- <table:table-cell table:style-name="ce58"/>
+ <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string">
+ <text:p>5</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
</table:table-row>
<table:table-row table:style-name="ro2">
- <table:table-cell/>
- <table:table-cell table:style-name="ce23"/>
- <table:table-cell table:style-name="ce64"/>
- <table:table-cell table:style-name="ce34"/>
+ <table:table-cell table:formula="of:=COUNTIF([.I49:.I52];&quot;&gt;2&quot;)" office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A51];12)=ROUND([.B51];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A51])" office:value-type="string" office:string-value="=COUNTIF(I49:I52,&quot;&gt;2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(I49:I52,&quot;&gt;2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
<table:table-cell table:number-columns-repeated="3"/>
- <table:table-cell table:style-name="ce42"/>
- <table:table-cell table:style-name="science"/>
- <table:table-cell table:number-columns-repeated="16"/>
- <table:table-cell table:style-name="ce56"/>
- <table:table-cell table:style-name="ce58"/>
+ <table:table-cell table:style-name="ce25" office:value-type="float" office:value="55" calcext:value-type="float">
+ <text:p>55</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float">
+ <text:p>3</text:p>
+ </table:table-cell>
</table:table-row>
<table:table-row table:style-name="ro2">
- <table:table-cell/>
- <table:table-cell table:style-name="ce23"/>
+ <table:table-cell table:formula="of:=COUNTIF([.I49:.I52];&quot;=5&quot;)" office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce64" table:formula="of:=ROUND([.A52];12)=ROUND([.B52];12)" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A52])" office:value-type="string" office:string-value="=COUNTIF(I49:I52,&quot;=5&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(I49:I52,&quot;=5&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce25" office:value-type="string" calcext:value-type="string">
+ <text:p>55</text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2" table:number-rows-repeated="4">
+ <table:table-cell table:number-columns-repeated="2"/>
<table:table-cell table:style-name="ce64"/>
- <table:table-cell table:style-name="ce34"/>
- <table:table-cell table:number-columns-repeated="4"/>
- <table:table-cell table:style-name="science"/>
- <table:table-cell table:number-columns-repeated="16"/>
- <table:table-cell table:style-name="ce56"/>
- <table:table-cell table:style-name="ce58"/>
</table:table-row>
<table:table-row table:style-name="ro2">
<table:table-cell table:formula="of:=COUNTIF([.I53];[.I53])" office:value-type="float" office:value="0" calcext:value-type="float">
diff --git a/sc/qa/unit/data/functions/statistical/fods/countif2.fods b/sc/qa/unit/data/functions/statistical/fods/countif2.fods
new file mode 100644
index 000000000000..35a61b34c642
--- /dev/null
+++ b/sc/qa/unit/data/functions/statistical/fods/countif2.fods
@@ -0,0 +1,3157 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<office:document xmlns:presentation="urn:oasis:names:tc:opendocument:xmlns:presentation:1.0" xmlns:css3t="http://www.w3.org/TR/css3-text/" xmlns:grddl="http://www.w3.org/2003/g/data-view#" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:dom="http://www.w3.org/2001/xml-events" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0" xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:rpt="http://openoffice.org/2005/report" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:tableooo="http://openoffice.org/2009/table" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:drawooo="http://openoffice.org/2010/draw" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" office:version="1.3" office:mimetype="application/vnd.oasis.opendocument.spreadsheet">
+ <office:meta><dc:date>2022-06-24T17:18:16.764582540</dc:date><meta:editing-duration>PT11M4S</meta:editing-duration><meta:editing-cycles>2</meta:editing-cycles><meta:generator>LibreOfficeDev/7.5.0.0.alpha0$Linux_X86_64 LibreOffice_project/d25a8aa5225fce111a477486d5664e80977f0dbe</meta:generator><meta:document-statistic meta:table-count="2" meta:cell-count="63" meta:object-count="0"/></office:meta>
+ <office:settings>
+ <config:config-item-set config:name="ooo:view-settings">
+ <config:config-item config:name="VisibleAreaTop" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaLeft" config:type="int">0</config:config-item>
+ <config:config-item config:name="VisibleAreaWidth" config:type="int">23857</config:config-item>
+ <config:config-item config:name="VisibleAreaHeight" config:type="int">4064</config:config-item>
+ <config:config-item-map-indexed config:name="Views">
+ <config:config-item-map-entry>
+ <config:config-item config:name="ViewId" config:type="string">view1</config:config-item>
+ <config:config-item-map-named config:name="Tables">
+ <config:config-item-map-entry config:name="Sheet1">
+ <config:config-item config:name="CursorPositionX" config:type="int">0</config:config-item>
+ <config:config-item config:name="CursorPositionY" config:type="int">9</config:config-item>
+ <config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item>
+ <config:config-item config:name="PositionLeft" config:type="int">0</config:config-item>
+ <config:config-item config:name="PositionRight" config:type="int">0</config:config-item>
+ <config:config-item config:name="PositionTop" config:type="int">0</config:config-item>
+ <config:config-item config:name="PositionBottom" config:type="int">0</config:config-item>
+ <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
+ <config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
+ <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ <config:config-item-map-entry config:name="Sheet2">
+ <config:config-item config:name="CursorPositionX" config:type="int">3</config:config-item>
+ <config:config-item config:name="CursorPositionY" config:type="int">11</config:config-item>
+ <config:config-item config:name="ActiveSplitRange" config:type="short">2</config:config-item>
+ <config:config-item config:name="PositionLeft" config:type="int">0</config:config-item>
+ <config:config-item config:name="PositionRight" config:type="int">0</config:config-item>
+ <config:config-item config:name="PositionTop" config:type="int">0</config:config-item>
+ <config:config-item config:name="PositionBottom" config:type="int">0</config:config-item>
+ <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
+ <config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
+ <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-named>
+ <config:config-item config:name="ActiveTable" config:type="string">Sheet1</config:config-item>
+ <config:config-item config:name="HorizontalScrollbarWidth" config:type="int">1860</config:config-item>
+ <config:config-item config:name="ZoomType" config:type="short">0</config:config-item>
+ <config:config-item config:name="ZoomValue" config:type="int">100</config:config-item>
+ <config:config-item config:name="PageViewZoomValue" config:type="int">60</config:config-item>
+ <config:config-item config:name="ShowPageBreakPreview" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="GridColor" config:type="int">12632256</config:config-item>
+ <config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="FormulaBarHeight" config:type="short">1</config:config-item>
+ <config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsValueHighlightingEnabled" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item>
+ <config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item>
+ <config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
+ <config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
+ <config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AnchoredTextOverflowLegacy" config:type="boolean">false</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-indexed>
+ </config:config-item-set>
+ <config:config-item-set config:name="ooo:configuration-settings">
+ <config:config-item config:name="AllowPrintJobCancel" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ApplyUserData" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="AutoCalculate" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="CharacterCompressionType" config:type="short">0</config:config-item>
+ <config:config-item config:name="EmbedAsianScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedComplexScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="EmbedLatinScriptFonts" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="EmbedOnlyUsedFonts" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="GridColor" config:type="int">12632256</config:config-item>
+ <config:config-item config:name="HasColumnRowHeaders" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="HasSheetTabs" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ImagePreferredDPI" config:type="int">0</config:config-item>
+ <config:config-item config:name="IsDocumentShared" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsKernAsianPunctuation" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="IsOutlineSymbolsSet" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsRasterAxisSynchronized" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="IsSnapToRaster" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="LinkUpdateMode" config:type="short">3</config:config-item>
+ <config:config-item config:name="LoadReadonly" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrinterName" config:type="string">CUPS-PDF</config:config-item>
+ <config:config-item config:name="PrinterPaperFromSetup" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="PrinterSetup" config:type="base64Binary">kQH+/0NVUFMtUERGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ1VQUzpDVVBTLVBERgAAAAAAAAAAAAAAAAAAAAAAAAAWAAMArgAAAAAAAAAEAAhSAAAEdAAASm9iRGF0YSAxCnByaW50ZXI9Q1VQUy1QREYKb3JpZW50YXRpb249UG9ydHJhaXQKY29waWVzPTEKY29sbGF0ZT1mYWxzZQptYXJnaW5hZGp1c3RtZW50PTAsMCwwLDAKY29sb3JkZXB0aD0yNApwc2xldmVsPTAKcGRmZGV2aWNlPTEKY29sb3JkZXZpY2U9MApQUERDb250ZXh0RGF0YQpQYWdlU2l6ZTpBNAAAEgBDT01QQVRfRFVQTEVYX01PREUTAER1cGxleE1vZGU6OlVua25vd24=</config:config-item>
+ <config:config-item config:name="RasterIsVisible" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="RasterResolutionX" config:type="int">1000</config:config-item>
+ <config:config-item config:name="RasterResolutionY" config:type="int">1000</config:config-item>
+ <config:config-item config:name="RasterSubdivisionX" config:type="int">1</config:config-item>
+ <config:config-item config:name="RasterSubdivisionY" config:type="int">1</config:config-item>
+ <config:config-item config:name="SaveThumbnail" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SaveVersionOnClose" config:type="boolean">false</config:config-item>
+ <config:config-item config:name="ShowGrid" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ShowNotes" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ShowPageBreaks" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="ShowZeroValues" config:type="boolean">true</config:config-item>
+ <config:config-item config:name="SyntaxStringRef" config:type="short">7</config:config-item>
+ <config:config-item config:name="UpdateFromTemplate" config:type="boolean">true</config:config-item>
+ <config:config-item-map-named config:name="ScriptConfiguration">
+ <config:config-item-map-entry config:name="Sheet1">
+ <config:config-item config:name="CodeName" config:type="string">Sheet1</config:config-item>
+ </config:config-item-map-entry>
+ <config:config-item-map-entry config:name="Sheet2">
+ <config:config-item config:name="CodeName" config:type="string">Sheet2</config:config-item>
+ </config:config-item-map-entry>
+ </config:config-item-map-named>
+ </config:config-item-set>
+ </office:settings>
+ <office:scripts>
+ <office:script script:language="ooo:Basic">
+ <ooo:libraries xmlns:ooo="http://openoffice.org/2004/office" xmlns:xlink="http://www.w3.org/1999/xlink"/>
+ </office:script>
+ </office:scripts>
+ <office:font-face-decls>
+ <style:font-face style:name="Arial" svg:font-family="Arial" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Droid Sans Devanagari" svg:font-family="&apos;Droid Sans Devanagari&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Droid Sans Devanagari1" svg:font-family="&apos;Droid Sans Devanagari&apos;" style:font-family-generic="swiss"/>
+ <style:font-face style:name="Droid Sans Fallback" svg:font-family="&apos;Droid Sans Fallback&apos;" style:font-family-generic="system" style:font-pitch="variable"/>
+ <style:font-face style:name="Liberation Sans" svg:font-family="&apos;Liberation Sans&apos;" style:font-family-generic="swiss" style:font-pitch="variable"/>
+ </office:font-face-decls>
+ <office:styles>
+ <style:default-style style:family="table-cell">
+ <style:paragraph-properties style:tab-stop-distance="0.5in"/>
+ <style:text-properties style:font-name="Liberation Sans" fo:font-size="10pt" fo:language="en" fo:country="US" style:font-name-asian="Arial" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-name-complex="Droid Sans Devanagari" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN"/>
+ </style:default-style>
+ <number:number-style style:name="N0">
+ <number:number number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:currency-style style:name="N122P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N122">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N122P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N417P0" style:volatile="true">
+ <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N417">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N417P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N413P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N413">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N413P0"/>
+ </number:number-style>
+ <number:percentage-style style:name="N411">
+ <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:currency-style style:name="N406P0" style:volatile="true">
+ <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N406">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N406P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N404P0" style:volatile="true">
+ <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N404">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N404P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N402P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N402P1" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N402P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N402">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N402P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N402P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N402P2"/>
+ </number:text-style>
+ <number:currency-style style:name="N391P0" style:volatile="true">
+ <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N391">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N391P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N389P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N389">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N389P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N384P0" style:volatile="true">
+ <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N384">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="de" number:country="AT">€</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N384P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N382P0" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N382P1" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N382P2" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N382">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N382P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N382P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N382P2"/>
+ </number:text-style>
+ <number:number-style style:name="N379P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N379P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N379P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N379">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N379P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N379P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N379P2"/>
+ </number:text-style>
+ <number:number-style style:name="N367">
+ <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N365P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N365P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N365P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N365">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N365P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N365P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N365P2"/>
+ </number:text-style>
+ <number:currency-style style:name="N359P0" style:volatile="true">
+ <number:currency-symbol number:language="ja" number:country="JP">¥</number:currency-symbol>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N359">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="ja" number:country="JP">¥</number:currency-symbol>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N359P0"/>
+ </number:currency-style>
+ <number:percentage-style style:name="N357P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:percentage-style style:name="N357">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N357P0"/>
+ </number:percentage-style>
+ <number:number-style style:name="N356P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> € </number:text>
+ </number:number-style>
+ <number:number-style style:name="N356P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> € </number:text>
+ </number:number-style>
+ <number:number-style style:name="N356P2" style:volatile="true">
+ <number:text> - € </number:text>
+ </number:number-style>
+ <number:text-style style:name="N356">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N356P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N356P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N356P2"/>
+ </number:text-style>
+ <number:number-style style:name="N350P0" style:volatile="true">
+ <number:text>\</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N350">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>\-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N350P0"/>
+ </number:number-style>
+ <number:percentage-style style:name="N349P0" style:volatile="true">
+ <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:percentage-style style:name="N349">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>%</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N349P0"/>
+ </number:percentage-style>
+ <number:number-style style:name="N345P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N345P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N345P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N345">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N345P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N345P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N345P2"/>
+ </number:text-style>
+ <number:percentage-style style:name="N329">
+ <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N325P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N325">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N325P0"/>
+ </number:number-style>
+ <number:number-style style:name="N324P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ </number:number-style>
+ <number:number-style style:name="N324">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N324P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N322P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N322">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N322P0"/>
+ </number:currency-style>
+ <number:percentage-style style:name="N320">
+ <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N315P0" style:volatile="true">
+ <number:text> £</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N315P1" style:volatile="true">
+ <number:text>-£</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N315P2" style:volatile="true">
+ <number:text> £</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N315">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N315P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N315P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N315P2"/>
+ </number:text-style>
+ <number:currency-style style:name="N311P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N311">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N311P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N309P0" style:volatile="true">
+ <number:text>\</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N309">
+ <number:text>\-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N309P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N308P0" style:volatile="true">
+ <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N308">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="13" number:min-decimal-places="13" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N308P0"/>
+ </number:currency-style>
+ <number:text-style style:name="N306">
+ <number:text-content/>
+ <number:text> - Result=0 - No Errordetection</number:text>
+ </number:text-style>
+ <number:number-style style:name="N305P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč </number:text>
+ </number:number-style>
+ <number:number-style style:name="N305P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč </number:text>
+ </number:number-style>
+ <number:number-style style:name="N305P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>- Kč </number:text>
+ </number:number-style>
+ <number:text-style style:name="N305">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N305P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N305P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N305P2"/>
+ </number:text-style>
+ <number:number-style style:name="N301P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N301P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N301P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N301">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N301P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N301P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N301P2"/>
+ </number:text-style>
+ <number:date-style style:name="N297">
+ <number:day/>
+ <number:text>/</number:text>
+ <number:month/>
+ <number:text>/</number:text>
+ <number:year/>
+ </number:date-style>
+ <number:number-style style:name="N296P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM </number:text>
+ </number:number-style>
+ <number:number-style style:name="N296P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM </number:text>
+ </number:number-style>
+ <number:number-style style:name="N296P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- DM </number:text>
+ </number:number-style>
+ <number:text-style style:name="N296">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N296P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N296P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N296P2"/>
+ </number:text-style>
+ <number:number-style style:name="N292P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N292">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N292P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N291P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N291">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N291P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N289P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N289">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(</number:text>
+ <number:currency-symbol number:language="en" number:country="US">$</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N289P0"/>
+ </number:currency-style>
+ <number:date-style style:name="N287">
+ <number:day-of-week number:style="long"/>
+ <number:text> </number:text>
+ <number:day number:style="long"/>
+ <number:text>/</number:text>
+ <number:month number:style="long"/>
+ <number:text>/</number:text>
+ <number:year/>
+ </number:date-style>
+ <number:currency-style style:name="N279P0" style:volatile="true">
+ <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N279">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N279P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N277P0" style:volatile="true">
+ <number:text> \</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N277P1" style:volatile="true">
+ <number:text> \</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N277P2" style:volatile="true">
+ <number:text> \</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N277">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N277P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N277P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N277P2"/>
+ </number:text-style>
+ <number:number-style style:name="N269P0" style:volatile="true">
+ <number:text>Yes</number:text>
+ </number:number-style>
+ <number:number-style style:name="N269P1" style:volatile="true">
+ <number:text>Yes</number:text>
+ </number:number-style>
+ <number:number-style style:name="N269">
+ <number:text>No</number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N269P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N269P1"/>
+ </number:number-style>
+ <number:number-style style:name="N267P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N267">
+ <style:text-properties fo:color="#000000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="0" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N267P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N261P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N261">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N261P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N259P0" style:volatile="true">
+ <number:currency-symbol number:language="cs" number:country="CZ">¥€</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3">
+ <number:embedded-text number:position="5"> </number:embedded-text>
+ </number:number>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N259">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(</number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">€</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="3">
+ <number:embedded-text number:position="5"> </number:embedded-text>
+ </number:number>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N259P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N257P0" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N257P1" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N257P2" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N257">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N257P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N257P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N257P2"/>
+ </number:text-style>
+ <number:date-style style:name="N256">
+ <number:day number:style="long"/>
+ <number:text>/</number:text>
+ <number:month number:style="long"/>
+ <number:text>/</number:text>
+ <number:year/>
+ </number:date-style>
+ <number:number-style style:name="N255P0" style:volatile="true">
+ <number:text>$</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N255">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>($</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N255P0"/>
+ </number:number-style>
+ <number:number-style style:name="N238">
+ <number:scientific-number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:number-style style:name="N226">
+ <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N225P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ </number:number-style>
+ <number:number-style style:name="N225">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N225P0"/>
+ </number:number-style>
+ <number:number-style style:name="N224P0" style:volatile="true">
+ <number:text>\</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N224">
+ <number:text>\-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N224P0"/>
+ </number:number-style>
+ <number:number-style style:name="N419">
+ <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N222">
+ <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N415">
+ <number:scientific-number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:number-style style:name="N218">
+ <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N414P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ </number:number-style>
+ <number:number-style style:name="N414">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N414P0"/>
+ </number:number-style>
+ <number:number-style style:name="N217P0" style:volatile="true">
+ <number:text>\</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N217">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>\-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N217P0"/>
+ </number:number-style>
+ <number:number-style style:name="N412">
+ <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:number-style style:name="N215P0" style:volatile="true">
+ <number:text/>
+ </number:number-style>
+ <number:currency-style style:name="N215">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N215P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N410P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N410">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N410P0"/>
+ </number:currency-style>
+ <number:date-style style:name="N213">
+ <number:day-of-week/>
+ <number:text> </number:text>
+ <number:day number:style="long"/>
+ <number:text>/</number:text>
+ <number:month number:style="long"/>
+ <number:text>/</number:text>
+ <number:year/>
+ </number:date-style>
+ <number:number-style style:name="N409P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N409P1" style:volatile="true">
+ <number:text> (</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N409P2" style:volatile="true">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N409">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N409P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N409P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N409P2"/>
+ </number:text-style>
+ <number:number-style style:name="N212P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ </number:number-style>
+ <number:number-style style:name="N212">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N212P0"/>
+ </number:number-style>
+ <number:number-style style:name="N210P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N210">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N210P0"/>
+ </number:number-style>
+ <number:number-style style:name="N208P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč </number:text>
+ </number:number-style>
+ <number:number-style style:name="N208P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč </number:text>
+ </number:number-style>
+ <number:number-style style:name="N208P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> Kč </number:text>
+ </number:number-style>
+ <number:text-style style:name="N208">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N208P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N208P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N208P2"/>
+ </number:text-style>
+ <number:percentage-style style:name="N204">
+ <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N400P0" style:volatile="true">
+ <number:text> £</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N400P1" style:volatile="true">
+ <number:text>-£</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N400P2" style:volatile="true">
+ <number:text> £</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N400">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N400P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N400P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N400P2"/>
+ </number:text-style>
+ <number:number-style style:name="N203P0" style:volatile="true">
+ <number:text>£</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N203">
+ <number:text>-£</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N203P0"/>
+ </number:number-style>
+ <number:number-style style:name="N202P0" style:volatile="true">
+ <number:text>£</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N202">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-£</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N202P0"/>
+ </number:number-style>
+ <number:percentage-style style:name="N200">
+ <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N396P0" style:volatile="true">
+ <number:text> \</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N396P1" style:volatile="true">
+ <number:text> \</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N396P2" style:volatile="true">
+ <number:text> \</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N396">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N396P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N396P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N396P2"/>
+ </number:text-style>
+ <number:percentage-style style:name="N199">
+ <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:percentage-style style:name="N392">
+ <number:number number:decimal-places="19" number:min-decimal-places="19" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:currency-style style:name="N195P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N195">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N195P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N285P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N285P1" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N285P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N285">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N285P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N285P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N285P2"/>
+ </number:text-style>
+ <number:number-style style:name="N188P0" style:volatile="true">
+ <number:text>$</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N188">
+ <number:text>($</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N188P0"/>
+ </number:number-style>
+ <number:number-style style:name="N281P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N281">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N281P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N381P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N381">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N381P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N184">
+ <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1" number:min-exponent-digits="1" number:exponent-interval="1" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:percentage-style style:name="N179">
+ <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:currency-style style:name="N273P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N273">
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N273P0"/>
+ </number:currency-style>
+ <number:percentage-style style:name="N176">
+ <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N372">
+ <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:percentage-style style:name="N175">
+ <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:currency-style style:name="N271P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N271">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N271P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N371P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N371P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N371P2" style:volatile="true">
+ <number:text> - </number:text>
+ </number:number-style>
+ <number:text-style style:name="N371">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N371P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N371P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N371P2"/>
+ </number:text-style>
+ <number:percentage-style style:name="N174">
+ <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N264P0" style:volatile="true">
+ <number:text>True</number:text>
+ </number:number-style>
+ <number:number-style style:name="N264P1" style:volatile="true">
+ <number:text>True</number:text>
+ </number:number-style>
+ <number:number-style style:name="N264">
+ <number:text>False</number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N264P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N264P1"/>
+ </number:number-style>
+ <number:number-style style:name="N167">
+ <number:number number:decimal-places="20" number:min-decimal-places="20" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N363P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N363P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N363P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N363">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N363P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N363P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N363P2"/>
+ </number:text-style>
+ <number:percentage-style style:name="N166">
+ <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:date-style style:name="N262">
+ <number:day/>
+ <number:text>-</number:text>
+ <number:month number:textual="true"/>
+ <number:text>-</number:text>
+ <number:year/>
+ </number:date-style>
+ <number:number-style style:name="N165P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N165P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N165P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N165">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N165P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N165P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N165P2"/>
+ </number:text-style>
+ <number:number-style style:name="N161P0" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N161P1" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N161P2" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N161">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N161P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N161P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N161P2"/>
+ </number:text-style>
+ <number:number-style style:name="N252P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM </number:text>
+ </number:number-style>
+ <number:number-style style:name="N252P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM </number:text>
+ </number:number-style>
+ <number:number-style style:name="N252P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> DM </number:text>
+ </number:number-style>
+ <number:text-style style:name="N252">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N252P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N252P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N252P2"/>
+ </number:text-style>
+ <number:currency-style style:name="N352P0" style:volatile="true">
+ <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N352">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N352P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N155P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N155P1" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N155P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N155">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N155P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N155P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N155P2"/>
+ </number:text-style>
+ <number:number-style style:name="N198P0" style:volatile="true">
+ <number:text>£</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N198">
+ <number:text>-£</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N198P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N248P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N248">
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N248P0"/>
+ </number:currency-style>
+ <number:time-style style:name="N151">
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long" number:decimal-places="1"/>
+ </number:time-style>
+ <number:number-style style:name="N197P0" style:volatile="true">
+ <number:text>On</number:text>
+ </number:number-style>
+ <number:number-style style:name="N197P1" style:volatile="true">
+ <number:text>On</number:text>
+ </number:number-style>
+ <number:number-style style:name="N197">
+ <number:text>Off</number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N197P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N197P1"/>
+ </number:number-style>
+ <number:currency-style style:name="N347P0" style:volatile="true">
+ <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N347">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N347P0"/>
+ </number:currency-style>
+ <number:time-style style:name="N150">
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long"/>
+ </number:time-style>
+ <number:number-style style:name="N290P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N290">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N290P0"/>
+ </number:number-style>
+ <number:number-style style:name="N193P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N193">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N193P0"/>
+ </number:number-style>
+ <number:number-style style:name="N146">
+ <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:currency-style style:name="N388P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N388">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N388P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N191P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N191">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N191P0"/>
+ </number:number-style>
+ <number:number-style style:name="N341P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N341P1" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N341P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N341">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N341P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N341P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N341P2"/>
+ </number:text-style>
+ <number:number-style style:name="N144">
+ <number:number number:decimal-places="10" number:min-decimal-places="10" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N143">
+ <number:number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:percentage-style style:name="N286">
+ <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N386P0" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N386P1" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N386P2" style:volatile="true">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N386">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N386P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N386P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N386P2"/>
+ </number:text-style>
+ <number:number-style style:name="N189">
+ <number:scientific-number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="3" number:min-exponent-digits="1" number:exponent-interval="3" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:number-style style:name="N142P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N142">
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N142P0"/>
+ </number:number-style>
+ <number:text-style style:name="N237">
+ <number:text>Ouch! - </number:text>
+ <number:text-content/>
+ <number:text> - Error detected!</number:text>
+ </number:text-style>
+ <number:currency-style style:name="N337P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N337">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="0" number:min-integer-digits="1" number:decimal-replacement="--" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="cs" number:country="CZ">Kč</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N337P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N140P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N140">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N140P0"/>
+ </number:number-style>
+ <number:number-style style:name="N186P0" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N186P1" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N186P2" style:volatile="true">
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N186">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N186P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N186P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N186P2"/>
+ </number:text-style>
+ <number:number-style style:name="N236P0" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N236P1" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N236P2" style:volatile="true">
+ <number:text> $</number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N236">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N236P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N236P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N236P2"/>
+ </number:text-style>
+ <number:number-style style:name="N139">
+ <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:currency-style style:name="N335P0" style:volatile="true">
+ <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N335">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N335P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N138P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="IE">€</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N138">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="IE">€</number:currency-symbol>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N138P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N280">
+ <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:time-style style:name="N380" number:truncate-on-overflow="false">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long"/>
+ </number:time-style>
+ <number:number-style style:name="N183P0" style:volatile="true">
+ <number:text> $</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N183P1" style:volatile="true">
+ <number:text> $(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N183P2" style:volatile="true">
+ <number:text> $- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N183">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N183P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N183P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N183P2"/>
+ </number:text-style>
+ <number:number-style style:name="N333P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ </number:number-style>
+ <number:number-style style:name="N333">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N333P0"/>
+ </number:number-style>
+ <number:number-style style:name="N136P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N136">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N136P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N254P0" style:volatile="true">
+ <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N254">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="15" number:min-decimal-places="15" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N254P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N157P0" style:volatile="true">
+ <number:text>£</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N157">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-£</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N157P0"/>
+ </number:number-style>
+ <number:percentage-style style:name="N331">
+ <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N134">
+ <number:scientific-number number:decimal-places="8" number:min-decimal-places="8" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:currency-style style:name="N374P0" style:volatile="true">
+ <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N374">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N374P0"/>
+ </number:currency-style>
+ <number:percentage-style style:name="N177">
+ <number:number number:decimal-places="7" number:min-decimal-places="7" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N327P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ </number:number-style>
+ <number:number-style style:name="N327">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N327P0"/>
+ </number:number-style>
+ <number:number-style style:name="N130P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N130P1" style:volatile="true">
+ <number:text> (</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N130P2" style:volatile="true">
+ <number:text> - </number:text>
+ </number:number-style>
+ <number:text-style style:name="N130">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N130P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N130P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N130P2"/>
+ </number:text-style>
+ <number:number-style style:name="N375P0" style:volatile="true">
+ <number:text>$</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N375">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>($</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N375P0"/>
+ </number:number-style>
+ <number:percentage-style style:name="N178">
+ <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:currency-style style:name="N228P0" style:volatile="true">
+ <number:currency-symbol>€</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N228">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(</number:text>
+ <number:currency-symbol>€</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N228P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N328">
+ <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N131">
+ <number:number number:decimal-places="16" number:min-decimal-places="16" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N246P0" style:volatile="true">
+ <number:text>$</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N246">
+ <number:text>($</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N246P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N149P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N149">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="fr" number:country="FR">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N149P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N270P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N270">
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N270P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N173P0" style:volatile="true">
+ <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N173">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N173P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N126P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N126">
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N126P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N232P0" style:volatile="true">
+ <number:text> $</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N232P1" style:volatile="true">
+ <number:text> $(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N232P2" style:volatile="true">
+ <number:text> $-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N232">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N232P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N232P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N232P2"/>
+ </number:text-style>
+ <number:number-style style:name="N332">
+ <number:number number:decimal-places="11" number:min-decimal-places="11" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N135">
+ <number:number number:decimal-places="18" number:min-decimal-places="18" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:currency-style style:name="N244P0" style:volatile="true">
+ <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N244">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N244P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N147">
+ <number:number number:decimal-places="17" number:min-decimal-places="17" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:currency-style style:name="N171P0" style:volatile="true">
+ <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N171">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="4" number:min-decimal-places="4" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N171P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N418">
+ <number:number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N221P0" style:volatile="true">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ </number:number-style>
+ <number:number-style style:name="N221">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> DM</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N221P0"/>
+ </number:number-style>
+ <number:currency-style style:name="N124P0" style:volatile="true">
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N124">
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="en" number:country="GB">£</number:currency-symbol>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N124P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N330P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ </number:number-style>
+ <number:number-style style:name="N330">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> Kč</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N330P0"/>
+ </number:number-style>
+ <number:number-style style:name="N133P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N133">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N133P0"/>
+ </number:number-style>
+ <number:number-style style:name="N242P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> € </number:text>
+ </number:number-style>
+ <number:number-style style:name="N242P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> € </number:text>
+ </number:number-style>
+ <number:number-style style:name="N242P2" style:volatile="true">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> € </number:text>
+ </number:number-style>
+ <number:text-style style:name="N242">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N242P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N242P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N242P2"/>
+ </number:text-style>
+ <number:number-style style:name="N145">
+ <number:number number:decimal-places="12" number:min-decimal-places="12" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:currency-style style:name="N266P0" style:volatile="true">
+ <number:currency-symbol number:language="pt" number:country="BR">R$</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ </number:currency-style>
+ <number:currency-style style:name="N266">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:currency-symbol number:language="pt" number:country="BR">R$</number:currency-symbol>
+ <number:text> </number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N266P0"/>
+ </number:currency-style>
+ <number:percentage-style style:name="N366">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:currency-style style:name="N169P0" style:volatile="true">
+ <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ </number:currency-style>
+ <number:currency-style style:name="N169">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="9" number:min-decimal-places="9" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <number:currency-symbol number:language="de" number:country="DE">€</number:currency-symbol>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N169P0"/>
+ </number:currency-style>
+ <number:number-style style:name="N219">
+ <number:number number:decimal-places="5" number:min-decimal-places="5" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:number-style style:name="N319P0" style:volatile="true">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N319P1" style:volatile="true">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N319P2" style:volatile="true">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N319">
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N319P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N319P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N319P2"/>
+ </number:text-style>
+ <number:date-style style:name="N10163" number:language="en" number:country="US">
+ <number:day number:style="long"/>
+ <number:text>-</number:text>
+ <number:month number:textual="true"/>
+ </number:date-style>
+ <number:time-style style:name="N10162" number:language="en" number:country="US" number:truncate-on-overflow="false">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long"/>
+ </number:time-style>
+ <number:time-style style:name="N10161" number:language="en" number:country="US">
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long" number:decimal-places="1"/>
+ </number:time-style>
+ <number:number-style style:name="N10160P0" style:volatile="true" number:language="en" number:country="US">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N10160" number:language="en" number:country="US">
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N10160P0"/>
+ </number:number-style>
+ <number:number-style style:name="N10159" number:language="en" number:country="US">
+ <number:number number:decimal-places="6" number:min-decimal-places="6" number:min-integer-digits="1"/>
+ </number:number-style>
+ <number:percentage-style style:name="N10158" number:language="en" number:country="US">
+ <number:number number:decimal-places="1" number:min-decimal-places="1" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:number-style style:name="N10157" number:language="en" number:country="US">
+ <number:number number:decimal-places="3" number:min-decimal-places="3" number:min-integer-digits="1" number:grouping="true"/>
+ </number:number-style>
+ <number:number-style style:name="N10156" number:language="en" number:country="US" number:title="User-defined">
+ <number:scientific-number number:decimal-places="14" number:min-decimal-places="14" number:min-integer-digits="1" number:min-exponent-digits="3" number:exponent-interval="1" number:forced-exponent-sign="true"/>
+ </number:number-style>
+ <number:currency-style style:name="N10155P0" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10155P1" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10155P2" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:text-style style:name="N10155" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N10155P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N10155P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N10155P2"/>
+ </number:text-style>
+ <number:number-style style:name="N10151P0" style:volatile="true" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N10151P1" style:volatile="true" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N10151P2" style:volatile="true" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="0"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:text-style style:name="N10151" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N10151P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N10151P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N10151P2"/>
+ </number:text-style>
+ <number:currency-style style:name="N10147P0" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10147P1" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10147P2" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:currency-style>
+ <number:text-style style:name="N10147" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N10147P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N10147P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N10147P2"/>
+ </number:text-style>
+ <number:number-style style:name="N10143P0" style:volatile="true" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N10143P1" style:volatile="true" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ </number:number-style>
+ <number:number-style style:name="N10143P2" style:volatile="true" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:fill-character> </number:fill-character>
+ <number:text>- </number:text>
+ </number:number-style>
+ <number:text-style style:name="N10143" number:language="en" number:country="US">
+ <number:text> </number:text>
+ <number:text-content/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;0" style:apply-style-name="N10143P0"/>
+ <style:map style:condition="value()&lt;0" style:apply-style-name="N10143P1"/>
+ <style:map style:condition="value()=0" style:apply-style-name="N10143P2"/>
+ </number:text-style>
+ <number:number-style style:name="N10139P0" style:volatile="true" number:language="en" number:country="US">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N10139" number:language="en" number:country="US">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N10139P0"/>
+ </number:number-style>
+ <number:number-style style:name="N10137P0" style:volatile="true" number:language="en" number:country="US">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N10137" number:language="en" number:country="US">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N10137P0"/>
+ </number:number-style>
+ <number:date-style style:name="N10135" number:language="en" number:country="US">
+ <number:month/>
+ <number:text>/</number:text>
+ <number:day/>
+ <number:text>/</number:text>
+ <number:year number:style="long"/>
+ <number:text> </number:text>
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ </number:date-style>
+ <number:time-style style:name="N10134" number:language="en" number:country="US">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long"/>
+ </number:time-style>
+ <number:time-style style:name="N10133" number:language="en" number:country="US">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ </number:time-style>
+ <number:time-style style:name="N10132" number:language="en" number:country="US">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long"/>
+ <number:text> </number:text>
+ <number:am-pm/>
+ </number:time-style>
+ <number:time-style style:name="N10131" number:language="en" number:country="US">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text> </number:text>
+ <number:am-pm/>
+ </number:time-style>
+ <number:date-style style:name="N10130" number:language="en" number:country="US">
+ <number:month number:textual="true"/>
+ <number:text>-</number:text>
+ <number:year/>
+ </number:date-style>
+ <number:date-style style:name="N10129" number:language="en" number:country="US">
+ <number:day/>
+ <number:text>-</number:text>
+ <number:month number:textual="true"/>
+ </number:date-style>
+ <number:date-style style:name="N10128" number:language="en" number:country="US">
+ <number:day/>
+ <number:text>-</number:text>
+ <number:month number:textual="true"/>
+ <number:text>-</number:text>
+ <number:year/>
+ </number:date-style>
+ <number:date-style style:name="N10127" number:language="en" number:country="US">
+ <number:month/>
+ <number:text>/</number:text>
+ <number:day/>
+ <number:text>/</number:text>
+ <number:year number:style="long"/>
+ </number:date-style>
+ <number:currency-style style:name="N10126P0" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10126" number:language="en" number:country="US">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(</number:text>
+ <number:currency-symbol/>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N10126P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N10125P0" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10125" number:language="en" number:country="US">
+ <number:text>(</number:text>
+ <number:currency-symbol/>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N10125P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N10123P0" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10123" number:language="en" number:country="US">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>(</number:text>
+ <number:currency-symbol/>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N10123P0"/>
+ </number:currency-style>
+ <number:currency-style style:name="N10122P0" style:volatile="true" number:language="en" number:country="US">
+ <number:currency-symbol/>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:currency-style>
+ <number:currency-style style:name="N10122" number:language="en" number:country="US">
+ <number:text>(</number:text>
+ <number:currency-symbol/>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text>)</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N10122P0"/>
+ </number:currency-style>
+ <number:date-style style:name="N20123" number:language="de" number:country="DE">
+ <number:day number:style="long"/>
+ <number:text>. </number:text>
+ <number:month number:textual="true"/>
+ <number:text> </number:text>
+ <number:year/>
+ </number:date-style>
+ <number:date-style style:name="N20122" number:language="de" number:country="DE">
+ <number:day number:style="long"/>
+ <number:text>. </number:text>
+ <number:month number:textual="true"/>
+ </number:date-style>
+ <number:date-style style:name="N20121" number:language="de" number:country="DE">
+ <number:month number:textual="true"/>
+ <number:text> </number:text>
+ <number:year/>
+ </number:date-style>
+ <number:time-style style:name="N20120" number:language="de" number:country="DE">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text> </number:text>
+ <number:am-pm/>
+ </number:time-style>
+ <number:time-style style:name="N20119" number:language="de" number:country="DE">
+ <number:hours/>
+ <number:text>:</number:text>
+ <number:minutes number:style="long"/>
+ <number:text>:</number:text>
+ <number:seconds number:style="long"/>
+ <number:text> </number:text>
+ <number:am-pm/>
+ </number:time-style>
+ <number:number-style style:name="N20118P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N20118" number:language="de" number:country="DE">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20118P0"/>
+ </number:number-style>
+ <number:number-style style:name="N20117P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N20117" number:language="de" number:country="DE">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20117P0"/>
+ </number:number-style>
+ <number:number-style style:name="N20115P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N20115" number:language="de" number:country="DE">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20115P0"/>
+ </number:number-style>
+ <number:number-style style:name="N20114P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ </number:number-style>
+ <number:number-style style:name="N20114" number:language="de" number:country="DE">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> </number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20114P0"/>
+ </number:number-style>
+ <number:number-style style:name="N20112P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N20112" number:language="de" number:country="DE">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20112P0"/>
+ </number:number-style>
+ <number:number-style style:name="N20111P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N20111" number:language="de" number:country="DE">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="0" number:min-decimal-places="0" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20111P0"/>
+ </number:number-style>
+ <number:number-style style:name="N20109P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N20109" number:language="de" number:country="DE">
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20109P0"/>
+ </number:number-style>
+ <number:number-style style:name="N20108P0" style:volatile="true" number:language="de" number:country="DE">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ </number:number-style>
+ <number:number-style style:name="N20108" number:language="de" number:country="DE">
+ <style:text-properties fo:color="#ff0000"/>
+ <number:text>-</number:text>
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1" number:grouping="true"/>
+ <number:text> €</number:text>
+ <style:map style:condition="value()&gt;=0" style:apply-style-name="N20108P0"/>
+ </number:number-style>
+ <style:style style:name="Default" style:family="table-cell">
+ <style:text-properties style:font-name-asian="Droid Sans Fallback" style:font-family-asian="&apos;Droid Sans Fallback&apos;" style:font-family-generic-asian="system" style:font-pitch-asian="variable" style:font-name-complex="Droid Sans Devanagari" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="system" style:font-pitch-complex="variable"/>
+ </style:style>
+ <style:style style:name="Heading" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-size="16pt" fo:font-style="italic" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="Heading_20_1" style:display-name="Heading 1" style:family="table-cell" style:parent-style-name="Heading">
+ <style:table-cell-properties style:rotation-angle="90"/>
+ </style:style>
+ <style:style style:name="Heading_20_2" style:display-name="Heading 2" style:family="table-cell" style:parent-style-name="Heading">
+ <style:text-properties fo:color="#000000" fo:font-size="12pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Text" style:family="table-cell" style:parent-style-name="Default"/>
+ <style:style style:name="Note" style:family="table-cell" style:parent-style-name="Text">
+ <style:table-cell-properties fo:background-color="#ffffcc" style:diagonal-bl-tr="none" style:diagonal-tl-br="none" fo:border="0.74pt solid #808080"/>
+ <style:text-properties fo:color="#333333" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Footnote" style:family="table-cell" style:parent-style-name="Text">
+ <style:text-properties fo:color="#808080" fo:font-size="10pt" fo:font-style="italic" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Hyperlink" style:family="table-cell" style:parent-style-name="Text">
+ <style:text-properties fo:color="#0000ee" fo:font-size="10pt" fo:font-style="normal" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="#0000ee" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Status" style:family="table-cell" style:parent-style-name="Default"/>
+ <style:style style:name="Good" style:family="table-cell" style:parent-style-name="Status">
+ <style:table-cell-properties fo:background-color="#ccffcc"/>
+ <style:text-properties fo:color="#006600" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Neutral" style:family="table-cell" style:parent-style-name="Status">
+ <style:table-cell-properties fo:background-color="#ffffcc"/>
+ <style:text-properties fo:color="#996600" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Bad" style:family="table-cell" style:parent-style-name="Status">
+ <style:table-cell-properties fo:background-color="#ffcccc"/>
+ <style:text-properties fo:color="#cc0000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Warning" style:family="table-cell" style:parent-style-name="Status">
+ <style:text-properties fo:color="#cc0000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Error" style:family="table-cell" style:parent-style-name="Status">
+ <style:table-cell-properties fo:background-color="#cc0000"/>
+ <style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="Accent" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties fo:color="#000000" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="Accent_20_1" style:display-name="Accent 1" style:family="table-cell" style:parent-style-name="Accent">
+ <style:table-cell-properties fo:background-color="#000000"/>
+ <style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Accent_20_2" style:display-name="Accent 2" style:family="table-cell" style:parent-style-name="Accent">
+ <style:table-cell-properties fo:background-color="#808080"/>
+ <style:text-properties fo:color="#ffffff" fo:font-size="10pt" fo:font-style="normal" fo:font-weight="normal"/>
+ </style:style>
+ <style:style style:name="Accent_20_3" style:display-name="Accent 3" style:family="table-cell" style:parent-style-name="Accent">
+ <style:table-cell-properties fo:background-color="#dddddd"/>
+ </style:style>
+ <style:style style:name="Result" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties fo:font-style="italic" style:text-underline-style="solid" style:text-underline-width="auto" style:text-underline-color="font-color" fo:font-weight="bold"/>
+ </style:style>
+ <style:style style:name="Result2" style:family="table-cell" style:parent-style-name="Result" style:data-style-name="N122"/>
+ <style:style style:name="Untitled1" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:background-color="#ff3333"/>
+ </style:style>
+ <style:style style:name="Untitled2" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:background-color="#99ff66"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_45" style:display-name="ConditionalStyle_45" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_44" style:display-name="ConditionalStyle_44" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_43" style:display-name="ConditionalStyle_43" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_42" style:display-name="ConditionalStyle_42" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_41" style:display-name="ConditionalStyle_41" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_40" style:display-name="ConditionalStyle_40" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_39" style:display-name="ConditionalStyle_39" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_38" style:display-name="ConditionalStyle_38" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_37" style:display-name="ConditionalStyle_37" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_36" style:display-name="ConditionalStyle_36" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_35" style:display-name="ConditionalStyle_35" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_34" style:display-name="ConditionalStyle_34" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_33" style:display-name="ConditionalStyle_33" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_32" style:display-name="ConditionalStyle_32" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_31" style:display-name="ConditionalStyle_31" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_30" style:display-name="ConditionalStyle_30" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_29" style:display-name="ConditionalStyle_29" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_28" style:display-name="ConditionalStyle_28" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_27" style:display-name="ConditionalStyle_27" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_26" style:display-name="ConditionalStyle_26" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_25" style:display-name="ConditionalStyle_25" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_24" style:display-name="ConditionalStyle_24" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_23" style:display-name="ConditionalStyle_23" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_22" style:display-name="ConditionalStyle_22" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_21" style:display-name="ConditionalStyle_21" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_20" style:display-name="ConditionalStyle_20" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_19" style:display-name="ConditionalStyle_19" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_15" style:display-name="ConditionalStyle_15" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_14" style:display-name="ConditionalStyle_14" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_13" style:display-name="ConditionalStyle_13" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_3" style:display-name="ConditionalStyle_3" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_2" style:display-name="ConditionalStyle_2" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ <style:style style:name="ConditionalStyle_5f_1" style:display-name="ConditionalStyle_1" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties style:font-name-complex="Droid Sans Devanagari1" style:font-family-complex="&apos;Droid Sans Devanagari&apos;" style:font-family-generic-complex="swiss"/>
+ </style:style>
+ </office:styles>
+ <office:automatic-styles>
+ <style:style style:name="co1" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="2.5791in"/>
+ </style:style>
+ <style:style style:name="co2" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="4.7839in"/>
+ </style:style>
+ <style:style style:name="co4" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="0.911in"/>
+ </style:style>
+ <style:style style:name="co5" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="0.7327in"/>
+ </style:style>
+ <style:style style:name="co6" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="1.0075in"/>
+ </style:style>
+ <style:style style:name="co7" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="2.4783in"/>
+ </style:style>
+ <style:style style:name="co8" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="2.0236in"/>
+ </style:style>
+ <style:style style:name="co9" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="0.2283in"/>
+ </style:style>
+ <style:style style:name="co10" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="0.6646in"/>
+ </style:style>
+ <style:style style:name="co3" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="0.889in"/>
+ </style:style>
+ <style:style style:name="co11" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="1.2598in"/>
+ </style:style>
+ <style:style style:name="co12" style:family="table-column">
+ <style:table-column-properties fo:break-before="auto" style:column-width="0.5339in"/>
+ </style:style>
+ <style:style style:name="ro1" style:family="table-row">
+ <style:table-row-properties style:row-height="0.3398in" fo:break-before="auto" style:use-optimal-row-height="true"/>
+ </style:style>
+ <style:style style:name="ro2" style:family="table-row">
+ <style:table-row-properties style:row-height="0.178in" fo:break-before="auto" style:use-optimal-row-height="true"/>
+ </style:style>
+ <style:style style:name="ro3" style:family="table-row">
+ <style:table-row-properties style:row-height="0.2409in" fo:break-before="auto" style:use-optimal-row-height="true"/>
+ </style:style>
+ <style:style style:name="ro4" style:family="table-row">
+ <style:table-row-properties style:row-height="0.2083in" fo:break-before="auto" style:use-optimal-row-height="true"/>
+ </style:style>
+ <style:style style:name="ta1" style:family="table" style:master-page-name="Default">
+ <style:table-properties table:display="true" style:writing-mode="lr-tb"/>
+ </style:style>
+ <number:percentage-style style:name="N11">
+ <number:number number:decimal-places="2" number:min-decimal-places="2" number:min-integer-digits="1"/>
+ <number:text>%</number:text>
+ </number:percentage-style>
+ <number:boolean-style style:name="N99">
+ <number:boolean/>
+ </number:boolean-style>
+ <style:style style:name="ce2" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="start" fo:margin-left="0in"/>
+ <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce3" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce4" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce5" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ </style:style>
+ <style:style style:name="ce6" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:map style:condition="cell-content()=&quot;&quot;" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/>
+ </style:style>
+ <style:style style:name="ce8" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:map style:condition="cell-content()=&quot;&quot;" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/>
+ </style:style>
+ <style:style style:name="ce14" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce15" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce17" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce21" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:map style:condition="cell-content()=&quot;&quot;" style:apply-style-name="Default" style:base-cell-address="Sheet2.C2"/>
+ <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet2.C2"/>
+ <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet2.C2"/>
+ </style:style>
+ <style:style style:name="ce22" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/>
+ <style:style style:name="ce24" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N320">
+ <style:table-cell-properties fo:background-color="transparent"/>
+ </style:style>
+ <style:style style:name="ce25" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11"/>
+ <style:style style:name="ce26" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:border="none"/>
+ </style:style>
+ <style:style style:name="ce28" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce29" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce32" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
+ </style:style>
+ <style:style style:name="ce37" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" style:vertical-align="middle"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce9" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce39" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="start" fo:margin-left="0in"/>
+ <style:text-properties fo:font-size="20pt" fo:font-weight="bold" style:font-size-asian="20pt" style:font-weight-asian="bold" style:font-size-complex="20pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce40" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:text-properties fo:font-size="14pt" fo:font-weight="bold" style:font-size-asian="14pt" style:font-weight-asian="bold" style:font-size-complex="14pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce41" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:text-properties fo:font-size="12pt" fo:font-weight="bold" style:font-size-asian="12pt" style:font-weight-asian="bold" style:font-size-complex="12pt" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce42" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ </style:style>
+ <style:style style:name="ce43" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:map style:condition="cell-content()=&quot;&quot;" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/>
+ </style:style>
+ <style:style style:name="ce44" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:map style:condition="cell-content()=&quot;&quot;" style:apply-style-name="Default" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet1.B3"/>
+ <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet1.B3"/>
+ </style:style>
+ <style:style style:name="ce45" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce46" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N0"/>
+ <style:style style:name="ce47" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N99">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false"/>
+ <style:paragraph-properties fo:text-align="center" fo:margin-left="0in"/>
+ <style:map style:condition="cell-content()=&quot;&quot;" style:apply-style-name="Default" style:base-cell-address="Sheet2.C2"/>
+ <style:map style:condition="cell-content()=0" style:apply-style-name="Untitled1" style:base-cell-address="Sheet2.C2"/>
+ <style:map style:condition="cell-content()=1" style:apply-style-name="Untitled2" style:base-cell-address="Sheet2.C2"/>
+ </style:style>
+ <style:style style:name="ce48" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N320">
+ <style:table-cell-properties fo:background-color="transparent"/>
+ </style:style>
+ <style:style style:name="ce49" style:family="table-cell" style:parent-style-name="Default" style:data-style-name="N11"/>
+ <style:style style:name="ce50" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:border="none"/>
+ </style:style>
+ <style:style style:name="ce51" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce52" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce53" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="bold" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce54" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties fo:wrap-option="wrap"/>
+ <style:text-properties style:use-window-font-color="true" style:text-outline="false" style:text-line-through-style="none" style:text-line-through-type="none" fo:font-size="10pt" fo:language="en" fo:country="US" fo:font-style="normal" fo:text-shadow="none" style:text-underline-style="none" fo:font-weight="normal" style:text-underline-mode="continuous" style:text-overline-mode="continuous" style:text-line-through-mode="continuous" style:font-size-asian="10pt" style:language-asian="zh" style:country-asian="CN" style:font-style-asian="normal" style:font-weight-asian="normal" style:font-size-complex="10pt" style:language-complex="hi" style:country-complex="IN" style:font-style-complex="normal" style:font-weight-complex="normal" style:text-emphasize="none" style:font-relief="none" style:text-overline-style="none" style:text-overline-color="font-color"/>
+ </style:style>
+ <style:style style:name="ce55" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties fo:font-weight="normal" style:font-weight-asian="normal" style:font-weight-complex="normal"/>
+ </style:style>
+ <style:style style:name="ce56" style:family="table-cell" style:parent-style-name="Default">
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:style style:name="ce57" style:family="table-cell" style:parent-style-name="Default">
+ <style:table-cell-properties style:text-align-source="fix" style:repeat-content="false" style:vertical-align="middle"/>
+ <style:paragraph-properties fo:text-align="center"/>
+ <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold" style:font-weight-complex="bold"/>
+ </style:style>
+ <style:page-layout style:name="pm1">
+ <style:page-layout-properties style:writing-mode="lr-tb"/>
+ <style:header-style>
+ <style:header-footer-properties fo:min-height="0.2953in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-bottom="0.0984in"/>
+ </style:header-style>
+ <style:footer-style>
+ <style:header-footer-properties fo:min-height="0.2953in" fo:margin-left="0in" fo:margin-right="0in" fo:margin-top="0.0984in"/>
+ </style:footer-style>
+ </style:page-layout>
+ </office:automatic-styles>
+ <office:master-styles>
+ <style:master-page style:name="Default" style:page-layout-name="pm1">
+ <style:header>
+ <text:p><text:sheet-name>???</text:sheet-name></text:p>
+ </style:header>
+ <style:header-left style:display="false"/>
+ <style:header-first style:display="false"/>
+ <style:footer>
+ <text:p>Page <text:page-number>1</text:page-number></text:p>
+ </style:footer>
+ <style:footer-left style:display="false"/>
+ <style:footer-first style:display="false"/>
+ </style:master-page>
+ </office:master-styles>
+ <office:body>
+ <office:spreadsheet>
+ <table:calculation-settings table:search-criteria-must-apply-to-whole-cell="false" table:automatic-find-labels="false"/>
+ <table:table table:name="Sheet1" table:style-name="ta1">
+ <table:table-column table:style-name="co1" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co1" table:default-cell-style-name="ce42"/>
+ <table:table-column table:style-name="co2" table:default-cell-style-name="Default"/>
+ <table:table-row table:style-name="ro1">
+ <table:table-cell table:style-name="ce39" office:value-type="string" calcext:value-type="string">
+ <text:p>COUNTIF Function</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro3">
+ <table:table-cell table:style-name="ce40" office:value-type="string" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce43" table:formula="of:=AND([.B8:.B95])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2" table:number-rows-repeated="3">
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro4">
+ <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string">
+ <text:p>Sheet</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string">
+ <text:p>Result</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce41" office:value-type="string" calcext:value-type="string">
+ <text:p>Description</text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce43" table:formula="of:=AND([Sheet2.C2:.C100])" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>Simple COUNTIF formulas with local references and values</text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce44"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>when the document option of “search on whole cell” is turned off.</text:p>
+ </table:table-cell>
+ </table:table-row>
+ <table:table-row table:style-name="ro2" table:number-rows-repeated="29">
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce44"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2" table:number-rows-repeated="1048537">
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:number-columns-repeated="3"/>
+ </table:table-row>
+ <calcext:conditional-formats>
+ <calcext:conditional-format calcext:target-range-address="Sheet1.B8:Sheet1.B38 Sheet1.B3:Sheet1.B3">
+ <calcext:condition calcext:apply-style-name="Default" calcext:value="=&quot;&quot;" calcext:base-cell-address="Sheet1.B3"/>
+ <calcext:condition calcext:apply-style-name="Untitled1" calcext:value="=0" calcext:base-cell-address="Sheet1.B3"/>
+ <calcext:condition calcext:apply-style-name="Untitled2" calcext:value="=1" calcext:base-cell-address="Sheet1.B3"/>
+ </calcext:conditional-format>
+ </calcext:conditional-formats>
+ </table:table>
+ <table:table table:name="Sheet2" table:style-name="ta1" table:print="false">
+ <table:table-column table:style-name="co4" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co5" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co6" table:default-cell-style-name="ce47"/>
+ <table:table-column table:style-name="co7" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co8" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co9" table:number-columns-repeated="3" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co10" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co3" table:default-cell-style-name="ce54"/>
+ <table:table-column table:style-name="co11" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co12" table:number-columns-repeated="6" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co3" table:number-columns-repeated="9" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co3" table:default-cell-style-name="ce42"/>
+ <table:table-column table:style-name="co3" table:number-columns-repeated="2" table:default-cell-style-name="Default"/>
+ <table:table-column table:style-name="co3" table:default-cell-style-name="ce42"/>
+ <table:table-column table:style-name="co3" table:default-cell-style-name="Default"/>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string">
+ <text:p>Function</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string">
+ <text:p>Expected</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string">
+ <text:p>Correct</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string">
+ <text:p>FunctionString</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce45" office:value-type="string" calcext:value-type="string">
+ <text:p>Comment</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="5"/>
+ <table:table-cell table:style-name="ce53"/>
+ <table:table-cell table:style-name="ce55"/>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce56"/>
+ <table:table-cell table:number-columns-repeated="12"/>
+ <table:table-cell table:style-name="ce57" table:number-columns-spanned="2" table:number-rows-spanned="1"/>
+ <table:covered-table-cell/>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce45" table:number-columns-repeated="2"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce46" table:formula="of:=COUNTIF([.I2:.I4];&quot;one&quot;)" office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A2]=[.B2]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A2])" office:value-type="string" office:string-value="=COUNTIF(I2:I4,&quot;one&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(I2:I4,&quot;one&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="4"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>one</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="24"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce46" table:formula="of:=COUNTIF([.I2:.I4];&quot;two&quot;)" office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A3]=[.B3]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A3])" office:value-type="string" office:string-value="=COUNTIF(I2:I4,&quot;two&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(I2:I4,&quot;two&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="4"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>two</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="24"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:style-name="ce46" table:formula="of:=COUNTIF([.I3:.I5];&quot;tones&quot;)" office:value-type="float" office:value="0" calcext:value-type="float">
+ <text:p>0</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="0" calcext:value-type="float">
+ <text:p>0</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A4]=[.B4]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A4])" office:value-type="string" office:string-value="=COUNTIF(I3:I5,&quot;tones&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(I3:I5,&quot;tones&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="4"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>oneone</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>A2</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="23"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:formula="of:=COUNTIF([.J4:.J7];&quot;&gt;2&quot;)" office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A5]=[.B5]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A5])" office:value-type="string" office:string-value="=COUNTIF(J4:J7,&quot;&gt;2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(J4:J7,&quot;&gt;2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="3"/>
+ <table:table-cell table:style-name="ce51"/>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:style-name="ce53"/>
+ <table:table-cell table:number-columns-repeated="11"/>
+ <table:table-cell table:style-name="ce56" table:number-columns-repeated="6"/>
+ <table:table-cell table:number-columns-repeated="5"/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:formula="of:=COUNTIF([.J4:.J7];&quot;=2&quot;)" office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A6]=[.B6]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A6])" office:value-type="string" office:string-value="=COUNTIF(J4:J7,&quot;=2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(J4:J7,&quot;=2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce49"/>
+ <table:table-cell table:style-name="ce52" office:value-type="float" office:value="5" calcext:value-type="float">
+ <text:p>5</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="18"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:formula="of:=COUNTIF([.J4:.J7];&quot;&lt;2&quot;)" office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="1" calcext:value-type="float">
+ <text:p>1</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A7]=[.B7]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A7])" office:value-type="string" office:string-value="=COUNTIF(J4:J7,&quot;&lt;2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(J4:J7,&quot;&lt;2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce48"/>
+ <table:table-cell/>
+ <table:table-cell table:style-name="ce52" office:value-type="string" calcext:value-type="string">
+ <text:p>5</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float">
+ <text:p>3</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="18"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:formula="of:=COUNTIF([.I6:.I9];&quot;&gt;2&quot;)" office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="2" calcext:value-type="float">
+ <text:p>2</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A8]=[.B8]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A8])" office:value-type="string" office:string-value="=COUNTIF(I6:I9,&quot;&gt;2&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(I6:I9,&quot;&gt;2&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce50"/>
+ <table:table-cell office:value-type="float" office:value="55" calcext:value-type="float">
+ <text:p>55</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="19"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell/>
+ </table:table-row>
+ <table:table-row table:style-name="ro2">
+ <table:table-cell table:formula="of:=COUNTIF([.I6:.I9];&quot;=5&quot;)" office:value-type="float" office:value="3" calcext:value-type="float">
+ <text:p>3</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="float" office:value="3" calcext:value-type="float">
+ <text:p>3</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=[.A9]=[.B9]" office:value-type="boolean" office:boolean-value="true" calcext:value-type="boolean">
+ <text:p>TRUE</text:p>
+ </table:table-cell>
+ <table:table-cell table:formula="of:=FORMULA([.A9])" office:value-type="string" office:string-value="=COUNTIF(I6:I9,&quot;=5&quot;)" calcext:value-type="string">
+ <text:p>=COUNTIF(I6:I9,&quot;=5&quot;)</text:p>
+ </table:table-cell>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>mixed numeric and string</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce50"/>
+ <table:table-cell office:value-type="string" calcext:value-type="string">
+ <text:p>55</text:p>
+ </table:table-cell>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="ce54"/>
+ <table:table-cell table:number-columns-repeated="16"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell table:number-columns-repeated="2"/>
+ <table:table-cell table:style-name="Default"/>
+ <table:table-cell/>
+ </table:table-row>
+ <calcext:conditional-formats>
+ <calcext:conditional-format calcext:target-range-address="Sheet2.C2:Sheet2.C9">
+ <calcext:condition calcext:apply-style-name="Default" calcext:value="=&quot;&quot;" calcext:base-cell-address="Sheet2.C2"/>
+ <calcext:condition calcext:apply-style-name="Untitled1" calcext:value="=0" calcext:base-cell-address="Sheet2.C2"/>
+ <calcext:condition calcext:apply-style-name="Untitled2" calcext:value="=1" calcext:base-cell-address="Sheet2.C2"/>
+ </calcext:conditional-format>
+ </calcext:conditional-formats>
+ </table:table>
+ <table:named-expressions/>
+ </office:spreadsheet>
+ </office:body>
+</office:document> \ No newline at end of file
diff --git a/sc/source/core/data/queryevaluator.cxx b/sc/source/core/data/queryevaluator.cxx
index 27968cbf22b3..b5ff8a354c84 100644
--- a/sc/source/core/data/queryevaluator.cxx
+++ b/sc/source/core/data/queryevaluator.cxx
@@ -35,9 +35,9 @@
#include <svl/zformat.hxx>
#include <unotools/collatorwrapper.hxx>
-bool ScQueryEvaluator::isPartialTextMatchOp(const ScQueryEntry& rEntry)
+bool ScQueryEvaluator::isPartialTextMatchOp(ScQueryOp eOp)
{
- switch (rEntry.eOp)
+ switch (eOp)
{
// these operators can only be used with textural comparisons.
case SC_CONTAINS:
@@ -52,12 +52,12 @@ bool ScQueryEvaluator::isPartialTextMatchOp(const ScQueryEntry& rEntry)
return false;
}
-bool ScQueryEvaluator::isTextMatchOp(const ScQueryEntry& rEntry)
+bool ScQueryEvaluator::isTextMatchOp(ScQueryOp eOp)
{
- if (isPartialTextMatchOp(rEntry))
+ if (isPartialTextMatchOp(eOp))
return true;
- switch (rEntry.eOp)
+ switch (eOp)
{
// these operators can be used for either textural or value comparison.
case SC_EQUAL:
@@ -68,23 +68,23 @@ bool ScQueryEvaluator::isTextMatchOp(const ScQueryEntry& rEntry)
return false;
}
-bool ScQueryEvaluator::isMatchWholeCellHelper(bool docMatchWholeCell, const ScQueryEntry& rEntry)
+bool ScQueryEvaluator::isMatchWholeCellHelper(bool docMatchWholeCell, ScQueryOp eOp)
{
bool bMatchWholeCell = docMatchWholeCell;
- if (isPartialTextMatchOp(rEntry))
+ if (isPartialTextMatchOp(eOp))
// may have to do partial textural comparison.
bMatchWholeCell = false;
return bMatchWholeCell;
}
-bool ScQueryEvaluator::isMatchWholeCell(const ScQueryEntry& rEntry) const
+bool ScQueryEvaluator::isMatchWholeCell(ScQueryOp eOp) const
{
- return isMatchWholeCellHelper(mbMatchWholeCell, rEntry);
+ return isMatchWholeCellHelper(mbMatchWholeCell, eOp);
}
-bool ScQueryEvaluator::isMatchWholeCell(const ScDocument& rDoc, const ScQueryEntry& rEntry)
+bool ScQueryEvaluator::isMatchWholeCell(const ScDocument& rDoc, ScQueryOp eOp)
{
- return isMatchWholeCellHelper(rDoc.GetDocOptions().IsMatchWholeCell(), rEntry);
+ return isMatchWholeCellHelper(rDoc.GetDocOptions().IsMatchWholeCell(), eOp);
}
void ScQueryEvaluator::setupTransliteratorIfNeeded()
@@ -133,7 +133,7 @@ bool ScQueryEvaluator::isRealWildOrRegExp(const ScQueryEntry& rEntry) const
if (mrParam.eSearchType == utl::SearchParam::SearchType::Normal)
return false;
- return isTextMatchOp(rEntry);
+ return isTextMatchOp(rEntry.eOp);
}
bool ScQueryEvaluator::isTestWildOrRegExp(const ScQueryEntry& rEntry) const
@@ -147,10 +147,10 @@ bool ScQueryEvaluator::isTestWildOrRegExp(const ScQueryEntry& rEntry) const
return (rEntry.eOp == SC_LESS_EQUAL || rEntry.eOp == SC_GREATER_EQUAL);
}
-bool ScQueryEvaluator::isQueryByValue(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem,
+bool ScQueryEvaluator::isQueryByValue(ScQueryOp eOp, ScQueryEntry::QueryType eType,
const ScRefCellValue& rCell)
{
- if (rItem.meType == ScQueryEntry::ByString || isPartialTextMatchOp(rEntry))
+ if (eType == ScQueryEntry::ByString || isPartialTextMatchOp(eOp))
return false;
return isQueryByValueForCell(rCell);
@@ -166,13 +166,13 @@ bool ScQueryEvaluator::isQueryByValueForCell(const ScRefCellValue& rCell)
return rCell.hasNumeric();
}
-bool ScQueryEvaluator::isQueryByString(const ScQueryEntry& rEntry, const ScQueryEntry::Item& rItem,
+bool ScQueryEvaluator::isQueryByString(ScQueryOp eOp, ScQueryEntry::QueryType eType,
const ScRefCellValue& rCell)
{
- if (isTextMatchOp(rEntry))
+ if (isTextMatchOp(eOp))
return true;
- if (rItem.meType != ScQueryEntry::ByString)
+ if (eType != ScQueryEntry::ByString)
return false;
return rCell.hasString();
@@ -298,8 +298,7 @@ std::pair<bool, bool> ScQueryEvaluator::compareByValue(const ScRefCellValue& rCe
return std::pair<bool, bool>(bOk, bTestEqual);
}
-OUString ScQueryEvaluator::getCellString(const ScRefCellValue& rCell, SCROW nRow,
- const ScQueryEntry& rEntry,
+OUString ScQueryEvaluator::getCellString(const ScRefCellValue& rCell, SCROW nRow, SCCOL nCol,
const svl::SharedString** sharedString)
{
if (rCell.getType() == CELLTYPE_FORMULA
@@ -326,10 +325,8 @@ OUString ScQueryEvaluator::getCellString(const ScRefCellValue& rCell, SCROW nRow
else
{
sal_uInt32 nFormat
- = mpContext
- ? mrTab.GetNumberFormat(*mpContext, ScAddress(static_cast<SCCOL>(rEntry.nField),
- nRow, mrTab.GetTab()))
- : mrTab.GetNumberFormat(static_cast<SCCOL>(rEntry.nField), nRow);
+ = mpContext ? mrTab.GetNumberFormat(*mpContext, ScAddress(nCol, nRow, mrTab.GetTab()))
+ : mrTab.GetNumberFormat(nCol, nRow);
SvNumberFormatter* pFormatter
= mpContext ? mpContext->GetFormatTable() : mrDoc.GetFormatTable();
return ScCellFormat::GetInputString(rCell, nFormat, *pFormatter, mrDoc, sharedString, true);
@@ -346,7 +343,7 @@ bool ScQueryEvaluator::isFastCompareByString(const ScQueryEntry& rEntry) const
const bool bTestWildOrRegExp = isTestWildOrRegExp(rEntry);
// SC_EQUAL is part of isTextMatchOp(rEntry)
return rEntry.eOp == SC_EQUAL && !bRealWildOrRegExp && !bTestWildOrRegExp
- && isMatchWholeCell(rEntry);
+ && isMatchWholeCell(rEntry.eOp);
}
// The value is placed inside one parameter: [pValueSource1] or [pValueSource2] but never in both.
@@ -363,7 +360,7 @@ std::pair<bool, bool> ScQueryEvaluator::compareByString(const ScQueryEntry& rEnt
if (bFast)
bMatchWholeCell = true;
else
- bMatchWholeCell = isMatchWholeCell(rEntry);
+ bMatchWholeCell = isMatchWholeCell(rEntry.eOp);
const bool bRealWildOrRegExp = !bFast && isRealWildOrRegExp(rEntry);
const bool bTestWildOrRegExp = !bFast && isTestWildOrRegExp(rEntry);
@@ -431,7 +428,7 @@ std::pair<bool, bool> ScQueryEvaluator::compareByString(const ScQueryEntry& rEnt
if (bFast || !bRealWildOrRegExp)
{
// Simple string matching i.e. no regexp match.
- if (bFast || isTextMatchOp(rEntry))
+ if (bFast || isTextMatchOp(rEntry.eOp))
{
// Check this even with bFast.
if (rItem.meType != ScQueryEntry::ByString && rItem.maString.isEmpty())
@@ -779,7 +776,7 @@ std::pair<bool, bool> ScQueryEvaluator::processEntry(SCROW nRow, SCCOL nCol, ScR
// and simple matching is used, see compareByString()
if (!cellStringSet)
{
- cellString = getCellString(aCell, nRow, rEntry, &cellSharedString);
+ cellString = getCellString(aCell, nRow, rEntry.nField, &cellSharedString);
cellStringSet = true;
}
// Allow also checking ScQueryEntry::ByValue if the cell is not numeric,
@@ -853,17 +850,17 @@ std::pair<bool, bool> ScQueryEvaluator::processEntry(SCROW nRow, SCCOL nCol, ScR
aRes.first |= aThisRes.first;
aRes.second |= aThisRes.second;
}
- else if (isQueryByValue(rEntry, rItem, aCell))
+ else if (isQueryByValue(rEntry.eOp, rItem.meType, aCell))
{
std::pair<bool, bool> aThisRes = compareByValue(aCell, nCol, nRow, rEntry, rItem);
aRes.first |= aThisRes.first;
aRes.second |= aThisRes.second;
}
- else if (isQueryByString(rEntry, rItem, aCell))
+ else if (isQueryByString(rEntry.eOp, rItem.meType, aCell))
{
if (!cellStringSet)
{
- cellString = getCellString(aCell, nRow, rEntry, &cellSharedString);
+ cellString = getCellString(aCell, nRow, rEntry.nField, &cellSharedString);
cellStringSet = true;
}
std::pair<bool, bool> aThisRes;
diff --git a/sc/source/core/data/queryiter.cxx b/sc/source/core/data/queryiter.cxx
index 5156385c4b8f..e712b24d4443 100644
--- a/sc/source/core/data/queryiter.cxx
+++ b/sc/source/core/data/queryiter.cxx
@@ -1219,8 +1219,9 @@ ScQueryCellIteratorAccessSpecific< ScQueryCellIteratorAccess::SortedCache >::Mak
return SortedCacheIndexer(rCells, nStartRow, nEndRow, sortedCache);
}
-static bool CanBeUsedForSorterCache(const ScDocument& rDoc, const ScQueryParam& rParam,
- const ScFormulaCell* cell, const ScComplexRefData* refData)
+static bool CanBeUsedForSorterCache(ScDocument& rDoc, const ScQueryParam& rParam,
+ SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData,
+ ScInterpreterContext& context)
{
if(!rParam.GetEntry(0).bDoQuery || rParam.GetEntry(1).bDoQuery
|| rParam.GetEntry(0).GetQueryItems().size() != 1 )
@@ -1237,19 +1238,12 @@ static bool CanBeUsedForSorterCache(const ScDocument& rDoc, const ScQueryParam&
if(rParam.mbRangeLookup)
return false;
if(rParam.GetEntry(0).GetQueryItem().meType == ScQueryEntry::ByString
- && !ScQueryEvaluator::isMatchWholeCell(rDoc, rParam.GetEntry(0)))
+ && !ScQueryEvaluator::isMatchWholeCell(rDoc, rParam.GetEntry(0).eOp))
return false; // substring matching cannot be sorted
if(rParam.GetEntry(0).eOp != SC_LESS && rParam.GetEntry(0).eOp != SC_LESS_EQUAL
&& rParam.GetEntry(0).eOp != SC_GREATER && rParam.GetEntry(0).eOp != SC_GREATER_EQUAL
&& rParam.GetEntry(0).eOp != SC_EQUAL)
return false;
- // tdf#149071 - numbers entered as string can be compared both as numbers
- // and as strings, depending on the cell content, and that makes it hard to pre-sort
- // the data; such queries are ScQueryEntry::ByValue but have maString set too
- // (see ScQueryParamBase::FillInExcelSyntax())
- if(rParam.GetEntry(0).GetQueryItem().meType == ScQueryEntry::ByValue
- && rParam.GetEntry(0).GetQueryItem().maString.isValid())
- return false;
// For unittests allow inefficient caching, in order for the code to be checked.
static bool inUnitTest = getenv("LO_TESTNAME") != nullptr;
if(refData == nullptr || refData->Ref1.IsRowRel() || refData->Ref2.IsRowRel())
@@ -1270,6 +1264,15 @@ static bool CanBeUsedForSorterCache(const ScDocument& rDoc, const ScQueryParam&
if(!inUnitTest)
return false;
}
+ // Check that all the relevant caches would be valid (may not be the case when mixing
+ // numeric and string cells for ByValue lookups).
+ for(SCCOL col : rDoc.GetAllocatedColumnsRange(nTab, rParam.nCol1, rParam.nCol2))
+ {
+ ScRange aSortedRangeRange( col, rParam.nRow1, nTab, col, rParam.nRow2, nTab);
+ ScSortedRangeCache& cache = rDoc.GetSortedRangeCache( aSortedRangeRange, rParam, &context );
+ if(!cache.isValid())
+ return false;
+ }
return true;
}
@@ -1329,10 +1332,11 @@ bool ScQueryCellIterator< ScQueryCellIteratorAccess::SortedCache >::GetNext()
return GetThis();
}
-bool ScQueryCellIteratorSortedCache::CanBeUsed(const ScDocument& rDoc, const ScQueryParam& rParam,
- const ScFormulaCell* cell, const ScComplexRefData* refData)
+bool ScQueryCellIteratorSortedCache::CanBeUsed(ScDocument& rDoc, const ScQueryParam& rParam,
+ SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData,
+ ScInterpreterContext& context)
{
- return CanBeUsedForSorterCache(rDoc, rParam, cell, refData);
+ return CanBeUsedForSorterCache(rDoc, rParam, nTab, cell, refData, context);
}
// Countifs implementation.
@@ -1359,10 +1363,11 @@ sal_uInt64 ScCountIfCellIterator< accessType >::GetCount()
}
-bool ScCountIfCellIteratorSortedCache::CanBeUsed(const ScDocument& rDoc, const ScQueryParam& rParam,
- const ScFormulaCell* cell, const ScComplexRefData* refData)
+bool ScCountIfCellIteratorSortedCache::CanBeUsed(ScDocument& rDoc, const ScQueryParam& rParam,
+ SCTAB nTab, const ScFormulaCell* cell, const ScComplexRefData* refData,
+ ScInterpreterContext& context)
{
- return CanBeUsedForSorterCache(rDoc, rParam, cell, refData);
+ return CanBeUsedForSorterCache(rDoc, rParam, nTab, cell, refData, context);
}
template<>
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index dbffd939d53d..957d93005375 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -5803,7 +5803,8 @@ void ScInterpreter::ScCountIf()
}
else
{
- if(ScCountIfCellIteratorSortedCache::CanBeUsed(mrDoc, rParam, pMyFormulaCell, refData))
+ if(ScCountIfCellIteratorSortedCache::CanBeUsed(mrDoc, rParam, nTab1, pMyFormulaCell,
+ refData, mrContext))
{
ScCountIfCellIteratorSortedCache aCellIter(mrDoc, mrContext, nTab1, rParam, false);
fCount += aCellIter.GetCount();
@@ -6198,7 +6199,8 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf
}
else
{
- if( ScQueryCellIteratorSortedCache::CanBeUsed( mrDoc, rParam, pMyFormulaCell, refData ))
+ if( ScQueryCellIteratorSortedCache::CanBeUsed( mrDoc, rParam, nTab1, pMyFormulaCell,
+ refData, mrContext ))
{
ScQueryCellIteratorSortedCache aCellIter(mrDoc, mrContext, nTab1, rParam, false);
// Increment Entry.nField in iterator when switching to next column.
@@ -10045,7 +10047,7 @@ static bool lcl_LookupQuery( ScAddress & o_rResultPos, ScDocument& rDoc, ScInter
}
else // EQUAL
{
- if( ScQueryCellIteratorSortedCache::CanBeUsed( rDoc, rParam, cell, refData ))
+ if( ScQueryCellIteratorSortedCache::CanBeUsed( rDoc, rParam, rParam.nTab, cell, refData, rContext ))
{
ScQueryCellIteratorSortedCache aCellIter( rDoc, rContext, rParam.nTab, rParam, false);
if (aCellIter.GetFirst())
diff --git a/sc/source/core/tool/rangecache.cxx b/sc/source/core/tool/rangecache.cxx
index 6a80ca786082..7f1e9cfe8235 100644
--- a/sc/source/core/tool/rangecache.cxx
+++ b/sc/source/core/tool/rangecache.cxx
@@ -25,18 +25,16 @@
#include <queryparam.hxx>
#include <sal/log.hxx>
+#include <svl/numformat.hxx>
#include <unotools/collatorwrapper.hxx>
-static bool needsDescending(const ScQueryParam& param)
+static bool needsDescending(ScQueryOp op)
{
- assert(param.GetEntry(0).bDoQuery && !param.GetEntry(1).bDoQuery
- && param.GetEntry(0).GetQueryItems().size() == 1);
- assert(param.GetEntry(0).eOp == SC_GREATER || param.GetEntry(0).eOp == SC_GREATER_EQUAL
- || param.GetEntry(0).eOp == SC_LESS || param.GetEntry(0).eOp == SC_LESS_EQUAL
- || param.GetEntry(0).eOp == SC_EQUAL);
+ assert(op == SC_GREATER || op == SC_GREATER_EQUAL || op == SC_LESS || op == SC_LESS_EQUAL
+ || op == SC_EQUAL);
// We want all matching values to start in the sort order,
// since the data is searched from start until the last matching one.
- return param.GetEntry(0).eOp == SC_GREATER || param.GetEntry(0).eOp == SC_GREATER_EQUAL;
+ return op == SC_GREATER || op == SC_GREATER_EQUAL;
}
static ScSortedRangeCache::ValueType toValueType(const ScQueryParam& param)
@@ -55,8 +53,8 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange,
const ScQueryParam& param, ScInterpreterContext* context)
: maRange(rRange)
, mpDoc(pDoc)
- , mDescending(needsDescending(param))
- , mValues(toValueType(param))
+ , mValid(false)
+ , mValueType(toValueType(param))
{
assert(maRange.aStart.Col() == maRange.aEnd.Col());
assert(maRange.aStart.Tab() == maRange.aEnd.Tab());
@@ -66,6 +64,8 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange,
&& param.GetEntry(0).GetQueryItems().size() == 1);
const ScQueryEntry& entry = param.GetEntry(0);
const ScQueryEntry::Item& item = entry.GetQueryItem();
+ mQueryOp = entry.eOp;
+ mQueryType = item.meType;
SCROW startRow = maRange.aStart.Row();
SCROW endRow = maRange.aEnd.Row();
@@ -73,9 +73,9 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange,
SCCOL endCol = maRange.aEnd.Col();
if (!item.mbMatchEmpty)
if (!pDoc->ShrinkToDataArea(nTab, startCol, startRow, endCol, endRow))
- return;
+ return; // no data cells, no need for a cache
- if (mValues == ValueType::Values)
+ if (mValueType == ValueType::Values)
{
struct RowData
{
@@ -86,12 +86,32 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange,
for (SCROW nRow = startRow; nRow <= endRow; ++nRow)
{
ScRefCellValue cell(pDoc->GetRefCellValue(ScAddress(nCol, nRow, nTab)));
- if (ScQueryEvaluator::isQueryByValue(entry, item, cell))
+ if (ScQueryEvaluator::isQueryByValue(mQueryOp, mQueryType, cell))
rowData.push_back(RowData{ nRow, cell.getValue() });
+ else if (ScQueryEvaluator::isQueryByString(mQueryOp, mQueryType, cell))
+ {
+ // Make sure that other possibilities in the generic handling
+ // in ScQueryEvaluator::processEntry() do not alter the results.
+ // (ByTextColor/ByBackgroundColor are blocked by CanBeUsedForSorterCache(),
+ // but isQueryByString() is possible if the cell content is a string.
+ // And including strings here would be tricky, as the string comparison
+ // may possibly(?) be different than a numeric one. So check if the string
+ // may possibly match a number, by converting it to one. If it can't match,
+ // then it's fine to ignore it (and it can happen e.g. if the query uses
+ // the whole column which includes a textual header). But if it can possibly
+ // match, then bail out and leave it to the unoptimized case.
+ // TODO Maybe it would actually work to use the numeric value obtained here?
+ if (!ScQueryEvaluator::isMatchWholeCell(*pDoc, mQueryOp))
+ return; // substring matching cannot be sorted
+ sal_uInt32 format = 0;
+ double value;
+ if (context->GetFormatTable()->IsNumberFormat(cell.getString(pDoc), format, value))
+ return;
+ }
}
std::stable_sort(rowData.begin(), rowData.end(),
[](const RowData& d1, const RowData& d2) { return d1.value < d2.value; });
- if (mDescending)
+ if (needsDescending(entry.eOp))
for (auto it = rowData.rbegin(); it != rowData.rend(); ++it)
mSortedRows.emplace_back(it->row);
else
@@ -113,31 +133,40 @@ ScSortedRangeCache::ScSortedRangeCache(ScDocument* pDoc, const ScRange& rRange,
for (SCROW nRow = startRow; nRow <= endRow; ++nRow)
{
ScRefCellValue cell(pDoc->GetRefCellValue(ScAddress(nCol, nRow, nTab)));
- if (ScQueryEvaluator::isQueryByString(entry, item, cell))
+ // This should be used only with ScQueryEntry::ByString, and that
+ // means that ScQueryEvaluator::isQueryByString() should be the only
+ // possibility in the generic handling in ScQueryEvaluator::processEntry()
+ // (ByTextColor/ByBackgroundColor are blocked by CanBeUsedForSorterCache(),
+ // and isQueryByValue() is blocked by ScQueryEntry::ByString).
+ assert(mQueryType == ScQueryEntry::ByString);
+ assert(!ScQueryEvaluator::isQueryByValue(mQueryOp, mQueryType, cell));
+ if (ScQueryEvaluator::isQueryByString(mQueryOp, mQueryType, cell))
{
const svl::SharedString* sharedString = nullptr;
- OUString string = evaluator.getCellString(cell, nRow, entry, &sharedString);
+ OUString string = evaluator.getCellString(cell, nRow, nCol, &sharedString);
if (sharedString)
string = sharedString->getString();
rowData.push_back(RowData{ nRow, string });
}
}
CollatorWrapper& collator
- = ScGlobal::GetCollator(mValues == ValueType::StringsCaseSensitive);
+ = ScGlobal::GetCollator(mValueType == ValueType::StringsCaseSensitive);
std::stable_sort(rowData.begin(), rowData.end(),
[&collator](const RowData& d1, const RowData& d2) {
return collator.compareString(d1.string, d2.string) < 0;
});
- if (mDescending)
+ if (needsDescending(entry.eOp))
for (auto it = rowData.rbegin(); it != rowData.rend(); ++it)
mSortedRows.emplace_back(it->row);
else
for (const RowData& d : rowData)
mSortedRows.emplace_back(d.row);
}
+
mRowToIndex.resize(maRange.aEnd.Row() - maRange.aStart.Row() + 1, mSortedRows.max_size());
for (size_t i = 0; i < mSortedRows.size(); ++i)
mRowToIndex[mSortedRows[i] - maRange.aStart.Row()] = i;
+ mValid = true;
}
void ScSortedRangeCache::Notify(const SfxHint& rHint)
@@ -157,7 +186,11 @@ void ScSortedRangeCache::Notify(const SfxHint& rHint)
ScSortedRangeCache::HashKey ScSortedRangeCache::makeHashKey(const ScRange& range,
const ScQueryParam& param)
{
- return { range, needsDescending(param), toValueType(param) };
+ assert(param.GetEntry(0).bDoQuery && !param.GetEntry(1).bDoQuery
+ && param.GetEntry(0).GetQueryItems().size() == 1);
+ const ScQueryEntry& entry = param.GetEntry(0);
+ const ScQueryEntry::Item& item = entry.GetQueryItem();
+ return { range, toValueType(param), entry.eOp, item.meType };
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */